Un exemple XSD
On septembre 29, 2021 by adminCe chapitre va démontrer comment écrire un schéma XML. Vous apprendrez également qu’un schéma peut être écrit de différentes manières.
Un document XML
Regardons ce document XML appelé « shiporder.xml »:
Créer un schéma XML
Nous voulons maintenant créer un schéma pour le document XML ci-dessus.
Nous commençons par ouvrir un nouveau fichier que nous appellerons « shiporder.xsd ». Pour créer le schéma, nous pourrions simplement suivre la structure dans le document XML et définir chaque élément comme nous le trouvons. Nous allons commencer par la déclaration XML standard suivie de l’élément xs:schema qui définit un schéma:
<xs:schema xmlns:xs= »http://www.w3.org/2001/XMLSchema »>
….
</xs:schema>
Dans le schéma ci-dessus, nous utilisons l’espace de nom standard (xs), et l’URI associé à cet espace de nom est la définition du langage Schema, qui a la valeur standard de http://www.w3.org/2001/XMLSchema.
Puis, nous devons définir l’élément « shiporder ». Cet élément a un attribut et il contient d’autres éléments, donc on le considère comme un type complexe. Les éléments enfants de l’élément « shiporder » sont entourés d’un élément xs:sequence qui définit une séquence ordonnée de sous-éléments:
<xs:complexType>
<xs:sequence>
…
</xs:sequence>
</xs:complexType>
</xs:element>
Alors nous devons définir l’élément « orderperson » comme un type simple (car il ne contient aucun attribut ou autre élément). Le type (xs:string) est préfixé avec le préfixe d’espace de nom associé à XML Schema qui indique un type de données de schéma prédéfini:
Puis, nous devons définir deux éléments qui sont de type complexe : « shipto » et « item ». Nous commençons par définir l’élément « shipto »:
Avec les schémas, nous pouvons définir le nombre d’occurrences possibles pour un élément avec les attributs maxOccurs et minOccurs. maxOccurs spécifie le nombre maximum d’occurrences pour un élément et minOccurs spécifie le nombre minimum d’occurrences pour un élément. La valeur par défaut pour maxOccurs et minOccurs est 1!
Nous pouvons maintenant définir l’élément « item ». Cet élément peut apparaître plusieurs fois à l’intérieur d’un élément « shiporder ». Cela est spécifié en définissant l’attribut maxOccurs de l’élément « item » à « unbounded », ce qui signifie qu’il peut y avoir autant d’occurrences de l’élément « item » que l’auteur le souhaite. Notez que l’élément « note » est facultatif. Nous l’avons spécifié en fixant l’attribut minOccurs à zéro:
Nous pouvons maintenant déclarer l’attribut de l’élément « shiporder ». Comme il s’agit d’un attribut obligatoire, nous spécifions use= »required ».
Note : Les déclarations d’attributs doivent toujours venir en dernier :
Voici la liste complète du fichier de schéma appelé « shiporder.xsd »:
Diviser le schéma
La méthode de conception précédente est très simple, mais peut être difficile à lire et à maintenir lorsque les documents sont complexes.
La méthode de conception suivante est basée sur la définition de tous les éléments et attributs d’abord, puis sur la référence à ceux-ci en utilisant l’attribut ref.
Voici la nouvelle conception du fichier de schéma (« shiporder.xsd »):
Utiliser des types nommés
La troisième méthode de conception définit des classes ou des types, qui nous permettent de réutiliser les définitions des éléments. Cela se fait en nommant les éléments simpleTypes et complexTypes, puis en pointant vers eux par le biais de l’attribut type de l’élément.
Voici la troisième conception du fichier de schéma (« shiporder.xsd »):
L’élément restriction indique que le type de données est dérivé d’un type de données de l’espace de noms W3C XML Schema. Ainsi, le fragment suivant signifie que la valeur de l’élément ou de l’attribut doit être une valeur de chaîne de caractères:
L’élément restriction est plus souvent utilisé pour appliquer des restrictions aux éléments. Regardez les lignes suivantes du schéma ci-dessus:
<xs:restriction base= »xs:string »>
<xs:pattern value= »{6} »/>
</xs :restriction>
</xs:simpleType>
Cela indique que la valeur de l’élément ou de l’attribut doit être une chaîne de caractères, elle doit comporter exactement six caractères à la suite et ces caractères doivent être un nombre de 0 à 9.
Laisser un commentaire