Schéma XML:Dérivations

Un article de WikiTuto.

Jump to: navigation, search
  • XML Concepts de base
  1. Historique : de SGML à XML
  2. XML:Mise en oeuvre
  3. Structure d'un document XML
  4. Support par les navigateurs
  • Prise en main d'XML CookTop
  1. XML CookTop généralités
  2. Interface
  3. Exercices
  • Prise en main d'oXygen XML Editor
  1. Généralités
  2. Interface
  3. Fonctionnalités
  4. Exercices
  • Déclarations de Type de Document
  1. Introduction
  2. Types de DTD
  3. Déclarations d'éléments
  4. Déclarations d'attributs
  5. Déclarations d'entités
  • Initiation aux Schéma XML
  1. Introduction
  2. Les premiers pas
  3. Déclarations d'éléments et d'attributs
  4. Les types de données
  5. Espaces de nom
  6. Les dérivations
  7. Diverses autres fonctionnalités
  • Mise en forme à l'aide de feuilles de style XSL
  1. Présentation
  2. Exemples de mises en forme
  • Mise en forme à l'aide de feuilles de style XSL (XSLT)
  1. Les expressions de sélection
  2. XPath
  3. Éléments XSLT
  • Fonctions XPath
  1. Fonctions XPath applicables aux nœuds
  2. Fonctions XPath applicables aux chaînes de caractèress
  3. Fonctions XPath applicables aux nombres
  4. Fonctions booléennes
  5. Autres fonctions
  • Utilisation du DOM et XSLT dynamique
  1. Insertion de code JavaScript dans une page
  2. Utilisation du DOM
  • Synchroniser des contenus multimédia avec SMIL
  1. Généralités
  2. Construction progressive d'un fichier SMIL
  3. Conclusion
  • Un format de dessin vectoriel en XML: SVG
  1. Introduction
  2. SVG de base
  3. Éléments graphiques de base
  4. Structuration: éléments de groupage et références
  5. Transformations
  6. Autres fonctionnalités
  • L'animation dans le SVG
  1. Introduction
  2. Animation de base: l'élément animate
  3. Des animations plus complexes
  • Plus loin que les formulaires HTML: XForms
  1. Généralités
  2. Fonctionnalités des formulaires XForms
  3. Dans la pratique
  4. Pour aller plus loin...
  • Quelques mots sur les Services Web
  1. Généralités
  2. Trouver un service Web
  3. Accéder à un service Web
  4. Récapitulation et inconvénients
Source : Gilles Chagnon

Sommaire

Introduction

Les types simples et complexes permettent déjà de faire plus de choses que les déclarations dans le langage DTD. Il est possible de raffiner leur déclaration de telle manière qu'ils soient une "restriction" ou une extension d'un type déjà existant, en vue de préciser un peu plus leur forme. Nous allons nous limiter dans ce cours d'initiation à la restriction des types simples.

Restriction de type

Généralités

On peut appliquer une "dérivation" aussi bien à un type simple, qu'à un type complexe. La dérivation par restriction permet de créer de nouveaux types simples à partir des types simples prédéfinis par le format XML Schema. On utilise pour ce faire des "facettes", qui sont des contraintes supplémentaires appliquées à un type simple particulier.

Une "facette" permet de placer une contrainte sur l'ensemble des valeurs que peut prendre un type de base. Par exemple, on peut souhaiter créer un type simple, appelé MonEntier, limité aux valeurs comprises entre 0 et 99 inclus. On dérive ce type à partir du type simple prédéfini nonNegativeInteger, en utilisant la facette maxExclusive.

<xsd:simpleType name="monEntier">
  <xsd:restriction base="nonNegativeInteger">
    <xsd:maxExclusive value="100" />
  </xsd:restriction>
</xsd:simpleType>

Il existe un nombre important de facettes qui permettent de :

  • fixer, restreindre ou augmenter la longueur minimale ou maximale d'un type simple
  • énumérer toutes les valeurs possibles d'un type
  • prendre en compte des expressions régulières
  • fixer la valeur minimale ou maximale d'un type (voir l'exemple ci-dessus)
  • fixer la précision du type...

Exemples

On peut utiliser cette fonctionnalité pour reproduire ce qui, dans les DTD, permettait de limiter les valeurs de certains attributs. Ainsi...

<xsd:attribute name="jour" type="typeJourSemaine" use="required" />
<xsd:simpleType name="jourSemaine">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="lundi" />
    <xsd:enumeration value="mardi" />
    <xsd:enumeration value="mercredi" />
    <xsd:enumeration value="jeudi" />
    <xsd:enumeration value="vendredi" />
    <xsd:enumeration value="samedi" />
    <xsd:enumeration value="dimanche" />
  </xsd:restriction>
</xsd:simpleType>

Pour limiter la longueur d'une chaîne :

<xsd:simpleType name="typeMotLangueFrancaise">
  <xsd:restriction base="xsd:string">
<xsd:length value="21" />
  </xsd:restriction>
</xsd:simpleType> 

Plus complexe, on peut utiliser des expressions régulières, qui permettent de spécifier quels sont les caractères autorisés, à l'aide de l'élément <xsd:pattern>. Par exemple...

<xsd:simpleType name="typeAdresseElectronique">
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="(.)+@(.)+" />
  </xsd:restriction>
</xsd:simpleType>

Dans cet exemple, (.)+ signifie que l'on peut mettre n'importe quel caractère au moins une fois, et qu'entre les deux chaînes doit impérativement apparaître le caractère @.

Un numéro ISBN est un référent international pour une publication. Il s'agit d'un numéro à 10 chiffres. On peut le déclarer ainsi :

<xsd:simpleType name="typeISBN">
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="[0-9]{10}" />
  </xsd:restriction>
</xsd:simpleType>

Bien sûr, toutes les facettes ne sont pas acceptées par tous les types. Il serait fastidieux ici d'en donner la liste ; elle est accessible sur le site du W3C à l'adresse http://www.w3.org/TR/xmlschema-0/#SimpleTypeFacets.

Sources

Gille Chagnon

Boîte à outils
Annuaire gratuitCe site est listé dans la catégorie Informatique : Aide et astuces en informatique Annuaire