2010-03-01 31 views

Respuesta

161

La diferencia fundamental entre include y import es que se debe utilizar import para referirse a las declaraciones o definiciones que se encuentran en un diferente espacio de nombres objetivo y debe utilizar include para referirse a las declaraciones o definiciones que son (o serán) en el mismo espacio de nombres de destino.

Fuente: https://web.archive.org/web/20070804031046/http://xsd.stylusstudio.com/2002Jun/post08016.htm

+0

me encontré con estas explicaciones útiles, así: http: //xsd.stylusstudio .com/2005Mar/post05007.htm http://msdn.microsoft.com/en-us/library/ms256480.aspx – Pops

+0

La publicación de stylusstudio a la que se refiere @Pops está aquí: https://web.archive.org/ web/20140831005739/http: //xsd.stylusstudio.com/2005Mar/post05007.htm – tony19

8

También estoy interesado en esto. 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.

-1

cita directa de MSDN: <xsd:import> Element, Remarks section

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

+2

-1: ¿no es eso lo que [dijo] (http://stackoverflow.com/a/2357988/76337)? –

41

Uso xsd:include para traer un XSD de la misma o ningún espacio de nombres.

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

15

Otra diferencia es que <import> permite importar haciendo referencia a otro espacio de nombres. <include> solo permite importar haciendo referencia 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 el espacio de nombres ya. Especialmente teniendo en cuenta 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 lo hace en otro sistema

Ejemplo de código de importación válidos y no válidos e incluye:

Válido:

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

<xsd:include schemaLocation="classpath://mine.xsd"/> 

no válido:

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

"incluyen" Componente - Este componente trae 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 nombres de destino como el esquema actual. Los componentes "incluir" se usan generalmente para construir un nuevo esquema extendiendo los documentos de esquema existentes.

"importación" Componente - Este componente ofrece las mismas funciones que el componente de "incluir" salvo que el documento de esquema incluido tiene un objetivo diferente espacio de nombres. 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.

-2

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

Uso xsd: import para traer un XSD de un espacio de nombres diferente y se utiliza para construir un nuevo esquema mediante la extensión de los documentos de esquema existentes ..

Cuestiones relacionadas