从模式定义开始,我有一个标签,它在运行时创建它的子级,所以我们可能有两个序列的子级名称,即
序列1:
<task>
<a/>
<b/>
<c/>
<d/>
<e/>
</task>
序列2:
<task>
<g/>
<h/>
<i/>
<d/>
</task>
如何在XSD中定义它。ANY可以使用,但它不能确保孩子的数量,尽管我保持它的maxnumber未绑定。
我们可以跳过这个标签中的孩子吗?
在XSD中,它将
<xs:element name="task">
<xs:complexType>
<xs:sequence>
<xs:element name="a" type="xs:string"/>
<xs:element name="b" type="xs:string"/>
<xs:element name="c" type="xs:string"/>
<xs:element name="d" type="xs:string"/>
<xs:element name="e" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
因此,当你要创建它时,你会知道孩子的数量,以及每个孩子的名字。您可以在用于生成XSD的JAXB类中更改它,这就是
它工作:
<xs:complexType name="task">
<xs:sequence>
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>