xml – XSD all和XSD序列之间的中间

前端之家收集整理的这篇文章主要介绍了xml – XSD all和XSD序列之间的中间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我用XSD定义一个用户元素。对于此示例,用户具有名称,电子邮件和一个或多个国籍。我试过了:
<xs:all>
  <xs:element name="name" blabla />
  <xs:element name="email" blabla />
  <xs:element name="nationality" minOccurs="1" maxOccurs="unbounded" />
</xs:all>

但是,这是非法的。显然,“All”中的元素只能出现一次(或根本不出现)。
我可以通过改变所有到一个序列,但人们将不得不以确切的顺序,我实际上不关心的输入属性解决这个问题。

是否有这两种可用的组合?不是根据http://www.w3schools.com/Schema/schema_complex_indicators.asp,但也许它的隐藏(或我没有经验的眼睛不看到它)。

通过直觉,我也试过:

<xs:all>
  <xs:element name="name" blabla />
  <xs:element name="email" blabla />
  <xs:sequence>
    <xs:element name="nationality" minOccurs="1" maxOccurs="unbounded" />
  </xs:sequence>
</xs:all>

但是,这是不幸的是无效。

这里是XSD的当前,真实的一块:

<!-- user -->
  <xs:complexType name="user">
    <xs:sequence>
      <xs:element name="firstname" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="appendix" type="xs:string" minOccurs="0" maxOccurs="1" />
      <xs:element name="lastname" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="address" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="zipcode" type="xs:string" minOccurs="1" maxOccurs="1" />
      <xs:element name="city" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="username" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="email" type="xs:string" minOccurs="1" maxOccurs="1"/>
      <xs:element name="country" type="country" minOccurs="1" maxOccurs="1"/>
      <xs:element name="nationality" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
您的代码应在XSD 1.1中有效。对于XSD 1.0,你必须找到一个解决方法

猜你在找的XML相关文章