复杂类型包含 <xs:all> 和 <xs:any> 的 XML 架构?

XML Schema with complext type containing <xs:all> and <xs:any>?

提问人:Ken 提问时间:7/30/2010 最后编辑:Ken 更新时间:7/30/2010 访问量:2381

问:

我想定义一个复杂的类型,其中包含可能存在也可能不存在的元素,并且还允许其他未定义的元素,所以我有这样的东西:

<xs:complexType name="MyType">
 <xs:sequence>
  <xs:element name="A" type="xs:float" minOccurs="0" maxOccurs="1" />
  <xs:element name="B" type="xs:float" minOccurs="0" maxOccurs="1" />
  <xs:element name="C" type="xs:float" minOccurs="0" maxOccurs="1" />
  <xs:any minOccurs="0" processContents="skip"/>
 </xs:sequence>
</xs:complexType>

我不想强制使用订单,所以我想更改为 但不允许。有没有办法做到这一点?<xs:sequence><xs:sequence><xs:all><xs:any>

XSD 序列 指示器 ComplexType

评论

0赞 Ken 7/30/2010
我没有在描述中标记代码,因此它不可见。我已经知道<所有>,但我想使用<所有>和<任何>
0赞 Wrikken 7/30/2010
使用 XSD 验证 XML 的可能副本...但仍允许扩展性

答:

0赞 GSerg 7/30/2010 #1

要允许任何订单,请使用以下命令:

<xs:complexType name="MyType"> 
 <xs:all minOccurs="1" maxOccurs="1"> 
  <xs:element name="A" type="xs:float" minOccurs="0" maxOccurs="1" />
  <xs:element name="B" type="xs:float" minOccurs="0" maxOccurs="1" />
  <xs:element name="C" type="xs:float" minOccurs="0" maxOccurs="1" />
 </xs:all>
</xs:complexType> 

但是,你不能有一个内部的.
您也不能将它们都放在一种类型中,无论是直接还是作为扩展。
<any><all>