schemalocation entre diferencia another xml xsd

xml - another - ¿Cuál es la diferencia entre xsd: include y xsd: import?



xsd import another xsd (7)

¿Cuál es la diferencia entre xsd:include y xsd:import ? ¿Cuándo usarías uno en lugar de otro y cuándo no importaría?


Cita directa de MSDN: Elemento <xsd: import>, sección Comentarios

La diferencia entre el elemento de inclusión y el elemento de importación es que el elemento de importación permite referencias a componentes de esquema desde documentos de esquema con diferentes espacios de nombres de destino y el elemento de inclusión agrega los componentes de esquema de otros documentos de esquema que tienen el mismo espacio de nombres de destino (o sin espacio de nombres de destino especificado ) al esquema contenedor. En resumen, el elemento de importación le permite usar componentes de esquema desde cualquier esquema; El elemento de inclusión le permite agregar todos los componentes de un esquema incluido al esquema contenedor.


Componente " incluir ": este componente reúne todas las declaraciones y definiciones de un documento de esquema externo en el esquema actual. El documento de esquema externo debe tener el mismo espacio de nombre de destino que el esquema actual. Los componentes "incluir" se usan generalmente para construir un nuevo esquema extendiendo los documentos de esquema existentes.

Componente " Importar ": este componente ofrece las mismas funciones que el componente "incluir", excepto que el documento de esquema incluido tiene un espacio de nombres de destino diferente . Los componentes de "importación" se usan generalmente para construir un nuevo esquema tomando prestados declaraciones de elementos de documentos de esquema existentes desde otros espacios de nombres.


Estoy interesado en esto también. La única explicación que he encontrado es que xsd:include se usa para inclusiones dentro del espacio de nombres, mientras que xsd:import es para la inclusión entre espacios de nombres.



Otra diferencia es que <import> permite importar haciendo referencia a otro espacio de nombres. <include> solo permite la importación al referirse a un URI del esquema de inclusión previsto. Esa es definitivamente otra diferencia que la importación de espacio de nombres entre intra.

Por ejemplo, el validador de esquema xml ya puede conocer las ubicaciones de todos los esquemas por espacio de nombres . Especialmente considerando que hacer referencia a espacios de nombres XML por URI puede ser problemático en diferentes sistemas donde classpath: // no significa nada, o donde http: // no está permitido, o donde algunos URI no apuntan a lo mismo que en otro sistema

Muestra de código de importaciones válidas e inválidas e incluye:

Válido:

<xsd:import namespace="some/name/space"/> <xsd:import schemaLocation="classpath://mine.xsd"/> <xsd:include schemaLocation="classpath://mine.xsd"/>

Inválido:

<xsd:include namespace="some/name/space"/>


Usar xsd: include trae todas las declaraciones y definiciones de un documento de esquema externo al esquema actual.

Use xsd: import para traer un XSD desde un espacio de nombres diferente y usarlo para construir un nuevo esquema extendiendo los documentos de esquema existentes.


Use xsd:include para traer un XSD desde el mismo espacio de nombres o sin él.

Use xsd:import para traer un XSD desde un espacio de nombres diferente .