我有XML文件:XSD:抽象類集合
<Parent>
<Child1 ... />
<Child2 ... />
...
<Child1 ... />
<Child1 ... />
<Parent>
凡Clild1和CHILD2 - 父抽象類的兒童。
也就是說,問題是: 如何爲可以有任意數量的元素不同類型的集合設置驗證方案?
此致敬禮!
我有XML文件:XSD:抽象類集合
<Parent>
<Child1 ... />
<Child2 ... />
...
<Child1 ... />
<Child1 ... />
<Parent>
凡Clild1和CHILD2 - 父抽象類的兒童。
也就是說,問題是: 如何爲可以有任意數量的元素不同類型的集合設置驗證方案?
此致敬禮!
<xs:element name="Parent">
<xsl:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Child1"/>
<xs:element name="Child2"/>
</xs:choice>
</xs:complexType>
</xs:element>
爲了說明這是如何工作的,讓我們使用示例輸入的簡化版本。
<Parent>
<Child1 ... />
<Child2 ... />
<Child1 ... />
<Child1 ... />
</Parent>
<Parent>
是第一個驗證的元素。<Child1>
。由於<Child1>
是choice
塊中的第一個元素,因此它會進行驗證。<Child2>
元素。由於<Child2>
是下一個它也驗證。</Parent>
,因此驗證程序會將其與choice
塊進行覈對,因爲它可能會發生無限次數爲maxOccurs=unbounded
。<Child1>
元素。<Child2>
元素,因此它完成choice
塊。</Parent>
,因此驗證程序會將其與choice
塊進行覈對,因爲它可能會發生無限次數爲maxOccurs=unbounded
。<Child1>
元素。</Parent>
。由於minOccurs=0
這還允許在有0
出現一個<Child1>
或<Child2>
元件的情況下。除非明確聲明,否則XML模式元素將繼承其父元素的屬性。在這種情況下,由於我們沒有聲明<Child1>
或<Child2>
的minOccurs屬性,因此這相當於<xs:element minOccurs="0" name="Child1"/>
和<xs:element minOccurs="0" name="Child2"/>
。
謝謝你的回答!謝謝你的回答,關於解密問題的嘗試和一個詳細的例子,這使我的大腦在這個地方:) – f4x 2012-02-16 09:28:26
你是指父元素和子元素嗎? XML沒有類層次結構。 – 2012-02-16 06:01:04
是的,我沒有這麼說,我的意思是一個類結構 - 這個XML的來源。我認爲這可能會有用。 – f4x 2012-02-16 06:36:16
我仍然不確定你的分類結構是什麼意思,但是我繼續寫下了你可能想要驗證你的樣本輸入的例子。 – 2012-02-16 07:22:21