significa - Use<xs: all> en complexType del esquema XML?
xs element (2)
Tengo los siguientes XML complexType
s definidos:
<xs:complexType name="loss">
<xs:all>
<xs:element name="lossCause" type="xs:string"/>
<xs:element name="lossDate" type="xs:dateTime"/>
<xs:element name="lossDescription" type="xs:string"/>
<xs:element name="lossLocation" type="address" minOccurs="0"/>
<xs:element name="lossTime" type="xs:string" minOccurs="0"/>
<xs:element name="officials" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="official" type="official" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="incidentOnly" type="xs:boolean" use="required"/>
<xs:attribute name="lawsuit" type="xs:boolean" use="required"/>
</xs:complexType>
y:
<xs:complexType name="propLoss">
<xs:complexContent>
<xs:extension base="loss">
<xs:all>
<xs:element name="damageDescription" type="xs:string"/>
<xs:element name="property" type="property"/>
<xs:element name="responsibleParty" type="contact" minOccurs="0"/>
</xs:all>
<xs:attribute name="businessOperational" type="xs:boolean" use="required"/>
<xs:attribute name="propertyLivable" type="xs:boolean" use="required"/>
<xs:attribute name="weatherRelated" type="xs:boolean" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Sin embargo, después de la validación, aparece un error que indica que no se permite el grupo de all
modelos dentro de la loss
complexType
ni su extensión propLoss
definition. ¿Qué es lo que estoy haciendo mal?
¡Gracias!
Un problema con propLoss
es que no se puede extender un grupo all
en XML Schema (1.0). De la especificación:
Nota: Esta especificación solo permite anexar, y no otros tipos de extensiones. Esta decisión simplifica el procesamiento de aplicaciones requerido para convertir instancias desde derivadas a tipo base. Las versiones futuras pueden permitir más tipos de extensión, que requieren transformaciones más complejas para efectuar el casting.
No estoy seguro de cuál es el problema con la loss
menos que sea un daño colateral del error propLoss
.
Tenga en cuenta que en XSD 1.1 all
grupos se pueden ampliar de la manera que se muestra aquí, con el significado de que todos los niños mencionados en cualquiera de all
grupos deben estar presentes en cualquier orden. (Es decir, todo el grupo 1 y todo el grupo 2 se fusionan en un único todo-grupo con la concatenación de sus hijos).