web-dev-qa-db-fra.com

Puis-je avoir un schéma XML (XSD) incluant un autre schéma XML?

J'ai actuellement deux schémas XSD et l'un est une version "légère" de l'autre. En ce moment, j'ai tout dans la version "légère" répété dans le schéma "complet", mais cela devient une douleur quand j'ai besoin de faire un changement, et cela va à l'encontre du principe DRY de toute façon, Je me demandais donc s'il y avait un élément qui servait à inclure un autre schéma dans un schéma, afin que je puisse faire hériter mon "complet" du schéma "léger" pour réduire les obstacles de maintenance.

40
Robert Gould

Il existe deux méthodes pour cela.

<xsd:include schemaLocation="pathToFile" /> doit être utilisé pour inclure des fichiers du même espace de noms.

<xsd:import namespace="namespace" schemaLocation="pathToFile" /> doit être utilisé pour inclure des fichiers dans un espace de noms différent. Habituellement, vous spécifiez l'espace de noms donné en tant que targetNamespace du schéma importé.

57
jdmichal

Utilisez l'élément <include>, voir par exemple ici .

5
David Norman