Схема XML с полным типом, содержащая <xs: all> и <xs: any>? - PullRequest
5 голосов
/ 30 июля 2010

Я хочу определить сложный тип, который содержит элементы, которые могут или не могут существовать, а также допускает дополнительные неопределенные элементы, поэтому у меня есть что-то вроде этого:

<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> не допускается.Есть ли способ сделать это?

1 Ответ

0 голосов
/ 30 июля 2010

Чтобы разрешить любой заказ, используйте это:

<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>.
Также вы не можете иметь их обоих внутри одного типалибо напрямую, либо как расширение.

...