在架构中定义不同类型的子项(XSD)

时间:2013-11-25 12:22:11

标签: java xml xsd xsd-validation

生成模式定义,我有一个标签,它在运行时创建它的子项,所以我们可能有两个序列的子项名称,即。

序列1:

<task>
<a/>
<b/>
<c/>
<d/>
<e/>
</task>

序列2:

<task>
<g/>
<h/>
<i/>
<d/>
</task>

如何在XSD中定义它。任何人都可以使用,但它不会确保儿童的数量,但我保持最大数量未被遮挡。

我们可以在这个标签中igonre / skip the children?

2 个答案:

答案 0 :(得分:0)

在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类中更改它,那就是所有

答案 1 :(得分:0)

它有效:

  <xs:complexType name="task">
    <xs:sequence>
        <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>