2010-07-29 7 views
5

quiero definir un tipo complejo que contiene elementos que pueden o no pueden existir, y también permite que los elementos no definidos adicionales, así que tengo algo como esto:Esquema XML con tipo completo que contiene <xs:all> y <xs:any>?

<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> 

no quiero forzar la ordene usando <xs:sequence> así que quiero cambiar <xs:sequence> a <xs:all> pero luego <xs:any> no está permitido. ¿Hay alguna forma de lograr esto?

+0

No marqué el código en mi descripción por lo que no estaba visible. Ya sé sobre , pero quiero usar y Ken

+0

posible duplicado de [Validar XML con XSD ... pero aún permitir la extensibilidad] (http://stackoverflow.com/questions/3347822/validating-xml-with- xsds-but-still-allow-extensibility) – Wrikken

Respuesta

0

para permitir que cualquier orden, utilice esto:

<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> 

Pero entonces, no se puede tener un <any> dentro de un <all>.
Tampoco puede tener ambos dentro de un tipo, ya sea directamente o como una extensión.

Cuestiones relacionadas