Comment faire pour importer un fichier XSD

Si la plupart des informations de schéma dont vous avez besoin est déjà contenu dans un autre fichier XSD, il n'y a aucune raison de dupliquer toutes ces informations dans un autre fichier. Cela est une recette pour un désastre, car en diffusant des informations sur le schéma XSD dans plusieurs fichiers, vous ne créez une situation de cauchemar si votre schéma XSD jamais besoin d'être modifié. Au lieu de cela, vous devez utiliser le "xsd: import" et "xsi: schemaLocation" tags dans vos documents XSD pour importer des fichiers XSD dans un autre d'autres documents XSD qui nécessitent les mêmes informations. Cela garantit que lorsque vient le temps de mettre à jour l'un de vos documents, les changements vont se propager vers d'autres documents automatiquement.

Instructions

1 Ouvrez votre nouveau fichier XSD dans un éditeur de texte. Pour le tutoriel, le document XSD très simple suivant sera utilisé:

<? Xml version = "1.0"?>

<Xsd: schema xmlns: xsd = "http://www.w3.org/2001/XMLSchema">

&lt;xsd:element name="person">

& Lt; xsd: complexType>

& Lt; xsd: sequence>

& Lt; xsd: element name = "nom" = "xsd: string" />

& Lt; xsd: element name = type "téléphone" = "xsd: string" />

& Lt; xsd: element name = "adresse" = "xsd: string" />

& Lt; / xsd: sequence>

& Lt; / xsd: complexType>

& Lt; / xsd: element>

</ Xsd: schema>

Comme vous pouvez le voir XSD définit la structure d'une base de données de personnes, chacun avec leur propre nom, adresse et numéro de téléphone. Cependant, certains des détails de la mise en œuvre sont moins souhaitables: sûrement il y a une définition de données mieux là-bas pour les noms, adresses et numéros de téléphone que la chaîne simple. Idéalement, notre document XSD devrait être en mesure de repérer toute évidence invalide "numéros de téléphone" comme "12" ou, pire encore, quelque chose de complètement absurde comme «Je ne me sens pas comme vous donner mon numéro de téléphone."

2 Ajoutez la ligne suivante à votre fichier XSD, juste en dessous du "xsd: schema" ligne:

<Xsd: import namespace = "kevinwalkersNS" schemaLocation = "phoneNumber.xsd" />

<Xsd: import namespace = "kevinwalkersNS" schemaLocation = "address.xsd" />

<Xsd: import namespace = "kevinwalkersNS" schemaLocation = "englishNames.xsd" />

Maintenant, vous avez importé trois fichiers XSD: celui qui définit un type de données "phoneNumber", un autre pour une "adresse" type de données, et un troisième pour un "englishNames" type de données. Chacun d'eux est dans un espace de noms nommé "kevinwalkersNS," et cela empêche les conflits avec d'autres documents qui peuvent avoir des noms de variables similaires en leur sein.

3 Modifier les types de variables de vos éléments qui utilisent les documents XSD que vous avez importés d'utiliser le schéma contenu dans. Dans ce cas, le "xsd: string" devrait être remplacé comme ceci:

&lt;xsd:element name="name" type="kevinwalkersNS:englishNames"/>

& Lt; xsd: element name = type "téléphone" = "kevinwalkersNS: phoneNumber" />

& Lt; xsd: element name = type "adresse" = "kevinwalkersNS: adresse" />