使用XSD允許,我要定義可能出現的三種不同形式的複雜元素:XSD:一個元素必須以不同的形式
<Scope Name="foo" /> <!-- no children -->
<Scope Name="foo" Src="bar" /> <!-- When Src is present, there must be no children! -->
<Scope Name="foo"><!-- other children --></Scope>
在第三種情況下,它是明確界定,可能會出現什麼作爲兒童元素(例如,所有三種類型的「範圍」)。重要的部分是具有「Src」屬性的Scope元素必須是空的!
Furhtermore,在不同的地方,我只想要特定類型的元素。例如,在根標籤內部,我想準確地允許第三種類型的Scope元素;在大多數情況下,我會准許所有的情況。這就是問題所在:如何解決這個問題?
我到目前爲止做了什麼:我創建了一個複雜的類型,我可以在其中使用3種情況。但是,我不能使用:
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Scope" type="type_Scope_WithSrc" />
<xs:element name="Scope" type="type_Scope_WithContent" />
<xs:element name="Scope" type="type_Scope_Base" />
</xs:choice>
我試圖創建這些的聯合,但聯合只允許simpleTypes。
我也試着定義一個使用xs:choice來包含它們的整體類型「type_Scope」。但是,XS:選擇將包括XS:元素也將在這種情況下:-(
需要一個名字,你能告訴我怎樣才能解決這個
請不要告訴我,這是不可能的XSD :-(:-(
謝謝
問候 DIVB