web-dev-qa-db-fra.com

Quelle est la différence entre xsd: include et xsd: import?

Quelle est la différence entre xsd:include et xsd:import? Quand utiliseriez-vous l'un au lieu de l'autre et quand cela n'aurait-il pas d'importance?

182
Pops

La différence fondamentale entre include et import est que vous devez utiliser import pour faire référence à des déclarations ou à des définitions qui se trouvent différentes espace de noms cible et vous devez utiliser include pour faire référence à des déclarations ou définitions qui sont (ou seront) dans la même cible espace de noms.

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

189
Sergiy Belozorov

Utilisez xsd: include pour importer un fichier XSD à partir de identique ou aucun espace de noms.

Utilisez xsd: import pour importer un fichier XSD à partir d'un différent espace de noms.

48
kjhughes

Une autre différence est que <import> permet d'importer en faisant référence à un autre espace de noms. <include> n'autorise l'importation qu'en faisant référence à un URI du schéma d'inclusion prévu. C'est certainement une autre différence que l'importation entre espaces de noms intra-intra.

Par exemple, le validateur de schéma XML peut déjà connaître l'emplacement de tous les schémas par espace de nom déjà. Surtout en considérant que faire référence à des espaces de noms XML par URI peut être problématique sur différents systèmes où classpath: // ne veut rien dire, ou où http: // n'est pas autorisé, ou dans lequel un URI ne pointe pas vers la même chose que sur un autre système.

Exemple de code d'importations valides et non valides et comprenant:

Valide:

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

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

Invalide:

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

Cela m'intéresse aussi. La seule explication que j'ai trouvée est que xsd:include est utilisé pour les inclusions intra-espaces de noms, tandis que xsd:import est utilisé pour l'inclusion d'espaces de noms.

7
Matt Luongo

Devis direct de MSDN: <xsd: import>, élément Remarques

La différence entre l'élément include et l'élément import ​​est que l'élément import ​​autorise les références aux composants de schéma à partir de documents de schéma avec différents espaces de nom cible et - include élément ajoute les composants de schéma d'autres documents de schéma qui ont le même espace de noms cible (ou aucun espace de noms cible spécifié) au schéma contenant. En bref, l'élément import ​​vous permet d'utiliser des composants de schéma à partir de n'importe quel schéma. l'élément include vous permet d'ajouter tous les composants d'un schéma inclus au schéma le contenant.

0
Mrinmoy Sarkar