La différence fondamentale entre includeet importest que vous devez utiliser importpour faire référence aux déclarations ou définitions qui se trouvent dans un espace de noms cible différent et que vous devez utiliser includepour faire référence aux déclarations ou définitions qui sont (ou seront) dans le même espace de noms cible.
Une autre différence est que <import>permet l'importation en se référant à un autre espace de noms. <include>autorise uniquement l'importation en se référant à un URI du schéma d'inclusion prévu. C'est certainement une autre différence que l'importation d'espace de noms inter-intra.
Par exemple, le validateur de schéma xml peut déjà connaître déjà les emplacements de tous les schémas par espace de noms . Surtout si l'on considère que la référence aux 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 où certains URI ne pointent pas vers la même chose que sur un autre système.
Échantillon de code d'importations valides et non valides et comprend:
Je pense que vous voulez dire faire référence aux espaces de noms XML par URL de localisation plutôt que par URI . Les URI d'espace de noms (c'est-à-dire l' namespaceattribut de <xs:import>) sont toujours OK et considérés comme un identifiant (juste du texte, non interprété), tandis que schemaLocation(une URL et non un URI) doit généralement être traité pour être résolu. Et là, en effet, le schéma d'classpath: URL spécifique à Java peut ne rien signifier. Mais à côté de ce choix soigné, c'est un commentaire précieux, merci.
ddevienne
7
Cela m'intéresse également. La seule explication que j'ai trouvée est qu'elle xsd:includeest utilisée pour les inclusions intra-espace de noms, tandis que xsd:importc'est pour l'inclusion inter-espaces de noms.
La différence entre l' élément include et l' élément import est que l' élément import permet des références aux composants de schéma à partir de documents de schéma avec des espaces de noms cibles différents et l' élément include ajoute les composants de schéma à partir 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 conteneur. En bref, l' élément d' importation 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 conteneur.
Utiliser xsd: include regroupe toutes les déclarations et définitions d'un document de schéma externe dans le schéma actuel.
Utilisez xsd: import pour importer un XSD à partir d'un espace de noms différent et utilisé pour créer un nouveau schéma en étendant les documents de schéma existants.
Réponses:
La différence fondamentale entre
include
etimport
est que vous devez utiliserimport
pour faire référence aux déclarations ou définitions qui se trouvent dans un espace de noms cible différent et que vous devez utiliserinclude
pour faire référence aux déclarations ou définitions qui sont (ou seront) dans le même espace de noms cible.Source: https://web.archive.org/web/20070804031046/http://xsd.stylusstudio.com/2002Jun/post08016.htm
la source
Utilisez xsd: include pour importer un XSD à partir du même espace de noms ou d'aucun espace de noms.
Utilisez xsd: import pour importer un XSD à partir d'un espace de noms différent .
la source
Une autre différence est que
<import>
permet l'importation en se référant à un autre espace de noms.<include>
autorise uniquement l'importation en se référant à un URI du schéma d'inclusion prévu. C'est certainement une autre différence que l'importation d'espace de noms inter-intra.Par exemple, le validateur de schéma xml peut déjà connaître déjà les emplacements de tous les schémas par espace de noms . Surtout si l'on considère que la référence aux 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 où certains URI ne pointent pas vers la même chose que sur un autre système.
Échantillon de code d'importations valides et non valides et comprend:
Valide:
Invalide:
la source
namespace
attribut de<xs:import>
) sont toujours OK et considérés comme un identifiant (juste du texte, non interprété), tandis queschemaLocation
(une URL et non un URI) doit généralement être traité pour être résolu. Et là, en effet, le schéma d'classpath:
URL spécifique à Java peut ne rien signifier. Mais à côté de ce choix soigné, c'est un commentaire précieux, merci.Cela m'intéresse également. La seule explication que j'ai trouvée est qu'elle
xsd:include
est utilisée pour les inclusions intra-espace de noms, tandis quexsd:import
c'est pour l'inclusion inter-espaces de noms.la source
Devis direct de MSDN: élément <xsd: import>, section Remarques
la source
Utiliser xsd: include regroupe toutes les déclarations et définitions d'un document de schéma externe dans le schéma actuel.
Utilisez xsd: import pour importer un XSD à partir d'un espace de noms différent et utilisé pour créer un nouveau schéma en étendant les documents de schéma existants.
la source