2017-08-08 39 views
1

我想創建一個至少需要1個子元素的元素,但可能會多次出現一個或多個子元素。如何使用XSD發生指示符表示至少需要一個

下面的例子都將是有效的:

<Parent> 
    <ChildA></ChildA> 
    <ChildB></ChildB> 
</Parent> 

<Parent> 
    <ChildB></ChildB> 
    <ChildA></ChildA> 
</Parent> 

<Parent> 
    <ChildB></ChildB> 
    <ChildA></ChildA> 
    <ChildB></ChildB> 
    <ChildB></ChildB> 
    <ChildB></ChildB> 
    <ChildA></ChildA> 
</Parent> 

這將是無效的:

<Parent> 
</Parent> 

我發現this但它似乎沒有允許可變數量的任何特定的發生兒童。

all似乎並沒有允許一個以上發生任何

回答

1

這XSD,

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Parent"> 
    <xs:complexType> 
     <xs:choice maxOccurs="unbounded"> 
     <xs:element name="ChildA"/> 
     <xs:element name="ChildB"/> 
     </xs:choice> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

將成功地驗證了所列出的子元素中的至少一個XML。您的有效示例將被視爲有效,但不是您的無效示例。

+0

它也將允許''和'',問題並不完全清楚這些是否都被視爲有效。 –

+0

@MichaelKay:OP會說「至少需要1個孩子」。還有其他含糊之處嗎? – kjhughes

+0

只有我認爲這對OP是有好處的,因爲敘述的要求是非常非正式的陳述,而這個特例並沒有被這些例子所覆蓋。 –

相關問題