Estoy tratando de producir una bastante simple esquema XML para un XML similar al siguiente:XML esquema ambiguo
<messages>
<item>
<important_tag></important_tag>
</item>
<item>
<important_tag></important_tag>
<tag2></tag2>
</item>
<item>
<tag2></tag2>
<tag3></tag3>
</item>
</messages>
La idea es que <important_tag>
tendrá una definición específica y puede o puede no aparecer bajo <item>
. También puede aparecer más de una vez. Además, puede haber otras etiquetas antes o después de <important_tag>
que no puedo nombrar de antemano.
Me gustaría dar una definición específica para <important_tag>
. Por ejemplo, defina los atributos que debe contener. Lo que quiero decir es que si etiqueta_importante está presente, debe cumplir con mi definición. Cualquier otra etiqueta no tiene que ajustarse a ninguna definición.
He intentado utilizar el siguiente esquema:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="messages">
<xs:complexType>
<xs:sequence>
<xs:element ref="item" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<xs:element ref="important_tag" minOccurs="0"/>
<xs:any minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="important_tag">
<xs:complexType>
<xs:simpleContent>
... specific definitions for important_tag ...
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
Esto se traduce en un error diciendo que el esquema es ambigua.
El mensaje de error exacto es:
cos-nonambig: '<xs:element ref="important_tag">' makes the content model non-deterministic against '<xs:any>'. Possible causes: name equality, overlapping occurrence or substitution groups.
estoy usando XML Spy de Altova.
¿Cómo soluciono esto?
Gracias, Dana
¿Puede por favor publicar el mensaje de error exacto que está recibiendo y qué herramientas utilizó? – Tomalak