是否可以在其中包含complexType和元素但没有序列部分

时间:2009-11-12 14:10:10

标签: xml sequence

我有一个类似于这个例子的xml doc(和复杂元素):

<xs:element name="employee">
 <xs:complexType>
  <xs:sequence>
   <xs:element name="firstname" type="xs:string"/>
   <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
 </xs:complexType>
</xs:element>

但是在我的xml中,如果我先添加名字或姓氏,这无关紧要。 所以我想删除“xs:sequence”部分,但我不确定应该用它替换它。

如果不可能 - 那为什么不可能?

更新 如果我用&lt;更改它CX:所有&GT;我收到此错误:“所有组的所有{party}的{max occurrence}必须为0或1”。

3 个答案:

答案 0 :(得分:8)

使用<xs:all>代替<xs:sequence>

<xs:element name="employee">
 <xs:complexType>
  <xs:all>
   <xs:element name="firstname" type="xs:string"/>
   <xs:element name="lastname" type="xs:string"/>
  </xs:all>
 </xs:complexType>
</xs:element>

请参阅架构指标上的W3Schools page

  

所有指标

     

<all>指标指定   子元素可以出现在任何元素中   顺序,以及每个子元素   必须只出现一次:

答案 1 :(得分:2)

<xs:element name="employee">
    <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="firstname" type="xs:string" />
            <xs:element name="lastname" type="xs:string" />
        </xs:choice>
   </xs:complexType>
</xs:element>

这将允许您拥有任何顺序和数量的元素。

答案 2 :(得分:0)

您需要All indicator<xs:all>)。

<xs:element name="employee">
  <xs:complexType>
    <xs:all>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:all>
 </xs:complexType>
</xs:element>

XML Schema Tutorial上的W3Schools非常有帮助。