valida tipos xsd xml-namespaces

tipos - valida xml xsd



¿Para qué sirve este espacio de nombres de importación XSD? (1)

Tengo un documento xsd que comienza con:

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/> <xs:complexType name="T_segment"> <xs:sequence> <xs:element ref="element" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute ref="xml:space" use="required"/> <xs:attribute ref="id" use="required"/> </xs:complexType> ...

Cuando trato de usar este xsd en una aplicación de mapeo como BizTalk explota quejándose de espacios de nombres. Por lo tanto, elimino la etiqueta xs: import namespace y se queja de la etiqueta xs: attribute ref = "xml: space". Entonces, elimino eso y parece funcionar bien (al menos no explota).

Mi pregunta es, ¿para qué son esas etiquetas? Al eliminarlos, ¿estoy rompiendo el xsd?

Por lo que sé, los espacios de nombres son para evitar conflictos. Pero en el xsd todo está prefijado por xs y el propio esquema tiene xmlns: xs = "http://www.w3.org/2001/XMLSchema". No estoy seguro para qué es esa importación.


El elemento <xs:import /> importa el espacio de nombres XML en el esquema. El espacio de nombres importado contiene la definición del atributo "espacio". El bit <xs:attribute ref="xml:space" use="required"/> define un atributo "space" requerido para el tipo complejo "T_segment" por referencia del esquema importado (es decir, para que no tenga que reescribir la definición). El atributo de espacio esencialmente le da la capacidad de definir si el espacio en blanco es significativo para el elemento o no .

Ahora, dependiendo de la aplicación, en realidad podría estar rompiendo cosas porque esencialmente está eliminando una restricción del tipo complejo que podría ser relevante para la aplicación que consume el documento descrito por este esquema. Sin saber más sobre la aplicación, es difícil decir si esto es significativo en su caso o no.