Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Langage de description Schema XML

Langage de description Schema XML

Ce support cours est une courte introduction au langage de description Schema XML. Nous étudions les aspects suivants : définition de types simples (`Element`, `Attributs` et `Restrictions`), définition de types complexes (attributs, à partir de types simples, sous éléments et mixe) puis annotations.

Mickael BARON

August 06, 2009
Tweet

More Decks by Mickael BARON

Other Decks in Programming

Transcript

  1. Langages de description et
    modélisation
    Mickaël BARON – 2009 (Rév. Août 2009)
    mailto:[email protected] ou mailto:[email protected]
    mickael-baron.fr
    mickaelbaron
    Schema XML

    View full-size slide

  2. 2
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Creative Commons
    Contrat Paternité
    Partage des Conditions Initiales à l'Identique
    2.0 France
    http://creativecommons.org/licenses/by-sa/2.0/fr
    Licence

    View full-size slide

  3. 3
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    À propos de l’auteur …
    3
    † Mickaël BARON
    † Ingénieur de Recherche au LIAS
    † https://www.lias-lab.fr
    † Equipe : Ingénierie des Données et des Modèles
    † Responsable des plateformes logicielles, « coach » technique
    † Ancien responsable Java de Developpez.com (2011-2021)
    † Communauté Francophone dédiée au développement informatique
    † https://java.developpez.com
    † 4 millions de visiteurs uniques et 12 millions de pages vues par mois
    † 750 00 membres, 2000 forums et jusqu'à 5000 messages par jour
    mickael-baron.fr
    mickaelbaron

    View full-size slide

  4. 4
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Organisation du cours sur Schema XML
    † Généralités
    † Types simples
    † Elements
    † Attributs
    † Restrictions
    † Types complexes
    † Uniquement attributs
    † A partir de types simples
    † Sous éléments
    † Mixe
    † Annotations
    Tous les exemples du cours
    sont disponibles directement à l’adresse
    mbaron.developpez.com/divers/schemaxml

    View full-size slide

  5. 5
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Schema XML : généralités
    † Schema XML porte également les acronymes de XSD (XML
    Schema Document) ou WXS (W3C XML Schemas)
    † Il s’agit d’une norme définie par W3C (www.w3.org/XML/Schema)
    † Un Schema XML permet de décrire la structure XML d’un
    document en XML
    † Principaux avantages du Schema XML par rapport à la DTD
    † Comme le Schema XML est un document XML, les langages
    d’interrogation utilisés pour manipuler l’XML sont également utilisables
    (XSLT, XPath, XQuery, …)
    † Les outils qui manipulent du XML peuvent exploiter le Schema XML
    † Contraintes plus fortes (typage fort, ordre des éléments, cardinalité
    sur les éléments, expressions régulières, …)

    View full-size slide

  6. 6
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Schema XML : Schema XML Versus DTD
    † Partons d’un exemple simple d’XML qui montre les avantages
    d’employer le Schema XML au lieu d’une DTD
    † L’exemple simple XML est utilisé pour décrire une personne
    † Soit les contraintes suivantes qui devront être respectées
    † Une personne doit définir un nom puis un prénom puis un age et
    peut définir un email puis des renseignements sur ces enfants
    † L’age est un entier compris entre 1 et 100
    † L’email est une chaîne de caractères qui doit contenir le caractère @
    † Les renseignements concernant les enfants portent sur l’age
    (obligatoire), le sexe (obligatoire) et une remarque (facultative)
    † L’age de l’enfant est une restriction de l’age de la personne dont la
    valeur maxi est modifiée à 50
    † Le sexe est un énuméré (homme, femme et indéterminé)
    † Il ne peut y avoir plus de 3 enfants

    View full-size slide

  7. 7
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Schema XML : Schema XML Versus DTD
    † Schema XML qui décrit les besoins précédents
    targetNamespace="http://mbaron.developpez.com/InfoPersoSchema"
    xmlns:tns="http://mbaron.developpez.com/InfoPersoSchema"
    elementFormDefault="qualified" attributeFormDefault="qualified">






















    ...
    InfoPersoSchema.xsd du projet
    divers.xml.schemaXMLExample
    Email optionnel
    L’ordre des éléments
    doit être respecté
    Type simple défini sur
    la base d’un entier
    avec une restriction
    Type simple défini sur la base d’une
    chaîne de caractères avec une
    restriction sur le contenu

    View full-size slide

  8. 8
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Schema XML : Schema XML Versus DTD
    † Schema XML qui décrit les besoins précédents (suite)
























    InfoPersoSchema.xsd du projet
    divers.xml.schemaXMLExample
    Type simple défini sur la
    base d’un type simple défini
    précédemment
    Type complexe définissant la
    structure des informations
    concernant les enfants
    L’élément child définit trois
    attributs

    View full-size slide

  9. 9
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Schema XML : Schema XML Versus DTD
    † Deux instances XML qui décrivent une personne

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://mbaron.developpez.com/InfoPersoSchema InfoPersoSchema.xsd ">
    BARON
    Mickael
    30
    [email protected]




    InfoPersoInstance.xml du projet
    divers.xml.schemaXMLExample

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://mbaron.developpez.com/InfoPersoSchema InfoPersoSchema.xsd ">
    John
    BAD
    110
    toto.fr

    BadInfoPersoInstance.xml du projet
    divers.xml.schemaXMLExample
    Le prénom doit être
    positionné après le
    nom
    L’âge ne doit pas
    dépasser 100
    L’adresse ne contient
    pas le caractère @
    Instance XML qui ne respecte
    pas le Schema XML

    View full-size slide

  10. 10
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Schema XML : en-tête
    † Un document Schema XML est défini dans un fichier dont
    l’extension est *.xsd (monSchema.xsd)
    † La balise est la balise racine de tous documents
    Schema XML
    † Le corps de la balise décrit le contenu de la
    grammaire


    ... // Contenu du Schema XML

    Balise racine
    Précise la version
    XML et l’encodage
    utilisés
    InfoPersoSchema.xsd du projet
    divers.xml.schemaXMLExample

    View full-size slide

  11. 11
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Schema XML : en-tête
    † La configuration du document Schema XML est effectuée par
    l’intermédiaire des attributs de la balise

    xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://mbaron.developpez.com/InfoPersoSchema"
    xmlns:as="http://mbaron.developpez.com/InfoPersoSchema"
    elementFormDefault="qualified"
    attributeFormDefault="qualified"
    ... // Contenu du Schema XML

    InfoPersoSchema.xsd du projet
    divers.xml.schemaXMLExample
    Précise que les éléments et
    les types utilisés dans le
    Schema XML proviennent de
    l’espace de nommage W3C
    Précise que les éléments définis
    dans le Schema XML sont issus
    dans un autre espace de
    nommage
    Précise que pour cet espace
    de nommage les éléments
    sont préfixés par as

    View full-size slide

  12. 12
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Schema XML : en-tête
    † Possibilité de préfixer les éléments et les attributs qui
    proviennent d’un espace de nommage
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://keulkeul.blogspot.com/PrefixedInfoPersoSchema"
    xmlns:tns="http://keulkeul.blogspot.com/PrefixedInfoPersoSchema"
    elementFormDefault="qualified" attributeFormDefault="qualified">

















    ...

    PrefixedInfoPersoSchema.xsd du projet
    divers.xml.schemaXMLExample
    Tous les éléments de l’espace de
    nommage (W3C) sont préfixés par xs
    Tous les éléments de l’espace de
    nommage (PrefixedInfoPersoSchema)
    sont préfixés par tns

    View full-size slide

  13. 13
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Schema XML : référencer un Schema XML
    † Pour référencer un document XML à un Schema XML
    plusieurs informations sont à renseigner

    xmlns:tns="http://mbaron.developpez.com/InfoPersoSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://mbaron.developpez.com/InfoPersoSchema
    InfoPersoSchema.xsd ">
    ...

    L'espace de nommage par défaut où tous
    les éléments seront préfixés par tns
    L'espace de nommage des
    éléments définis par la norme
    W3C (ex : schemaLocation)
    L'espace de nommage du Schema XML utilisé et
    la localisation de sa définition
    schemaLocation="{namespace} {location}"

    View full-size slide

  14. 14
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Schema XML : types simples et types complexes
    † Un élément dans un Schema XML se déclare avec la balise

    † Un élément est typé, il doit donc respecter une structure de
    données
    † Deux types de données sont à distinguer : types simples
    et types complexes
    † Types simples
    † un élément de type simple ne peut comporter ni attributs, ni de sous
    éléments
    † possibilité d’utiliser des types prédéfinis issus de la norme W3C ou de
    dériver de nouveaux à partir de types déjà existant
    † Types complexes
    † un élément de type complexe permet d’exprimer des sous éléments et
    permet également d’y associer des attributs

    View full-size slide

  15. 15
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types simples : Eléments
    † Un élément de type simple est un élément qui ne contient
    pas d’attribut ni de sous éléments
    † Un élément se base sur un type simple prédéfini par la norme
    ou sur un type simple dérivé (voir dans Restrictions)
    † Syntaxe d’un élément de type simple
    † Si le type n’est pas défini, le type anyType est utilisé par
    défaut (aucune contrainte sur le contenu)
    † Exemples

    Le nom de l’élément Le type simple de l’élément

    BARON Mickael
    Définition d’un
    élément name
    de type string
    Du côté XML, la balise
    firstName contient un
    corps avec une valeur de
    type chaîne de caractères

    View full-size slide

  16. 16
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types simples : principaux types simples
    † anyType : BARON 123 (super type)
    † string : BARON Mickael
    † normalizedString : BARON Mickael
    † token : BARON Mickael
    † base64Binary : GpM7
    † hexBinary : 0FB7
    † integer : …, -1, 0, 1, …
    † positiveInteger : 1, 2, …
    † negativeInteger : …, -2, -1
    † nonNegativeInteger : 0, 1, 2, …
    † nonPositiveInteger : …, -2, -1, 0
    † long : -9223372036854775808, -1, 0, 1, 92…
    † unsignedLong : 0, 1, … 18446744073709…
    † int : -2147483648, …, -1, 0, 1, 2147483647
    † La définition de l’ensemble des types simples est disponible à
    www.w3.org/TR/xmlschema-0/#CreatDt
    † unsignedInt : 0, 1, … 4294967295
    † byte : -128, …, -1, 0, 1, …, 127
    † unsignedByte : 0, 1, …, 255
    † decimal : -1.23, 0, 123.4, 1000.00
    † float : -INF, -1E4, -0, 0, 12.78E-2, …
    † double : -INF, -1E4, -0, 0, 12.78E-2, …
    † boolean : true, false, 1, 0
    † duration : P1Y2M 1 année, 2 mois
    † dateTime : 1999-05-21T12:20:00.000 …
    † date : 1999-05-31
    † time : 13:20:00.000
    † gYear : 1999 (Gregorian Year)
    † gMonth : --05 (Gregorian Month)
    † language : en-GB, fr, …

    View full-size slide

  17. 17
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types simples : Eléments (valeur par défaut ou fixée)
    † Les éléments de types simples peuvent avoir une valeur
    par défaut ou une valeur fixée
    † Une valeur par défaut est automatiquement assignée quand
    la valeur de l’élément n’est pas explicitement donnée
    † Une valeur fixée est automatiquement assignée, aucune
    autre valeur ne peut être donnée à l’élément

    L’attribut default de l’élément firstName précise
    une valeur au cas où elle serait absente

    L’attribut fixed de l’élément firstName précise
    une valeur et ne peut être modifiée

    View full-size slide

  18. 18
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types simples : Attributs
    † Même si un élément de type simple ne peut avoir d’attribut
    (voir type complexe) l’attribut est toujours déclaré comme un
    type simple
    † Un attribut est optionnel par défaut, pour préciser qu’il est
    obligatoire, il faut utiliser l’attribut use
    † Syntaxe d’un attribut de type simple
    † Exemple

    Le nom de l’attribut Le type simple de l’attribut

    Définition d’un
    attribut remark
    de type string
    et qui est
    optionnel

    Du côté XML, la
    balise child contient
    un attribut remark
    de type string
    Précise le caractère obligatoire
    (required ou optional)

    View full-size slide

  19. 19
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types simples : Attributs (valeur par défaut ou fixée)
    † Les attributs peuvent avoir une valeur par défaut ou une
    valeur fixée tout comme les éléments simples
    † Une valeur par défaut est automatiquement assignée quand
    la valeur de l’attribut n’est pas explicitement donnée
    † Une valeur fixée est automatiquement assignée, aucune
    autre valeur ne peut être donnée à l’attribut

    L’attribut default de l’attribut remark précise une
    valeur au cas où elle serait absente

    L’attribut fixed de l’attribut remark précise une
    valeur et ne peut être modifiée

    View full-size slide

  20. 20
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types simples : Restrictions « Facets »
    † Les restrictions sur les types simples (Facets) permettent de
    dériver de nouveaux types à partir de types existants
    † La création de nouveaux types simples est réalisée au travers
    de la balise
    † La restriction de type permet de définir des contraintes sur le
    nouveau type à créer
    † La restriction est exprimée à partir de la balise

    ...

    Définition d’un nouveau
    type nameType


    ...


    La restriction précise sur
    quel type elle doit être
    appliquée
    Les différentes
    restrictions sont
    précisées dans la suite

    View full-size slide

  21. 21
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types simples : Restrictions « Facets »
    † La définition de l’ensemble des restrictions est disponible à
    www.w3.org/TR/xmlschema-0/#SimpleTypeFacets
    † maxExclusive : limite supérieure (exclue)
    † maxInclusive : limite supérieure (incluse)
    † minExclusive : limite inférieure (exclue)
    † minInclusive : limite inférieure (incluse)
    † enumeration : liste de valeurs autorisée
    † length : nombre de caractères ou d’élément d’une liste autorisé
    † minLength : nombre minimum de caractères ou d’élément d’une liste
    † pattern : expression régulière à respecter
    † fractionDigits : nombre maxi de digits autorisé
    † totalDigits : nombre exact de digits autorisé
    † whiteSpace : politique de gestion des espaces blancs (tab, retour
    ligne, fin de ligne, …)

    View full-size slide

  22. 22
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types simples : Restrictions « Facets »
    † Exemple : restriction sur des valeurs






    † Exemple : restriction sur une liste de valeur autorisée
    † Exemple : restriction à partir d’une expression régulière












    Restriction du
    type integer
    Les valeurs de type
    ageType ne doivent
    pas dépasser 100 et
    doivent être
    supérieures à 1
    Restriction du
    type string
    Trois valeurs sont
    autorisées
    Restriction du
    type string
    Toutes chaînes de
    caractères de type
    emailType doit
    respecter ce pattern

    View full-size slide

  23. 23
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types simples : Restrictions « Facets »
    † L'utilisation d'un nouveau type impose d'exploiter l'espace de
    nommage du Schema XML en cours
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://keulkeul.blogspot.com/PrefixedInfoPersoSchema"
    xmlns:tns="http://keulkeul.blogspot.com/PrefixedInfoPersoSchema"
    elementFormDefault="qualified" attributeFormDefault="qualified">



    ...

    ...









    ...

    InfoPersoSchema.xsd du projet
    divers.xml.schemaXMLExample
    Utilisation du nouveau type
    ageType défini dans
    l'espace de nommage tns
    Nous verrons l'utilisation des
    attributs lors de la présentation
    des types complexes

    View full-size slide

  24. 24
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types simples : Restrictions « Facets »
    † La création d’un nouveau type peut être anonyme, de ce fait
    aucune valeur n’est précisée dans l’attribut name de la balise
    simpleType
    † Une déclaration d’un type anonyme doit se faire dans le
    corps d’un élément ou d’un attribut simple
    † L'utilisation de types anonymes ne permet pas de réutiliser
    les nouveaux types définis, ils ne sont utilisables qu'une
    seule fois







    Le type utilisé pour
    l'élément old ne
    peut être ré-utilisé
    par un autre
    élément ou attribut

    View full-size slide

  25. 25
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types complexes : généralités
    † Un élément de type complexe peut contenir d'autres éléments
    et / ou des attributs
    † Un attribut ne peut être de type complexe
    † Quatre combinaisons d'éléments complexes sont à distinguer
    † Eléments vides qui ne contiennent que des attributs
    † Eléments de type simple qui contiennent des attributs
    † Eléments qui peuvent contenir des sous éléments et des attributs
    † Eléments qui contiennent des attributs, des sous éléments et du texte
    † La création d'un éléments de type complexe est réalisée au
    travers de la balise

    View full-size slide

  26. 26
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types complexes : Uniquement attributs
    † Il s'agit d'un élément de type complexe ne contenant que
    des attributs, appelé également élément vide
    † Exemple
    † Lister l'ensemble des attributs (comme défini précédemment)
    dans la balise

    Dans une instance XML, la balise
    child contient 3 attributs
    Le corps de l'élément child est vide







    View full-size slide

  27. 27
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types complexes : A partir de types simples
    † Il s'agit d'un élément de type complexe qui peut contenir
    une simple valeur dans son corps et des attributs
    † Exemple
    † Pour restreindre l'utilisation de types simples dans un type
    complexe il faut employer la balise
    Tom
    La balise child
    contient 2 attributs
    Le corps de l'élément child est défini
    par une simple valeur de type string



    ...



    Le contenu de la balise
    simpleContent précise
    qu'il ne peut y avoir que
    des attributs et une
    simple valeur

    View full-size slide

  28. 28
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types complexes : A partir de types simples
    † Une extension (restriction a été vue précédemment) permet
    d'employer un type sans définition de contraintes
    † Deux écritures selon si vous souhaitez une restriction ou une
    extension




    ...








    ...














    View full-size slide

  29. 29
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types complexes : Sous éléments
    † Il s'agit d'un élément de type complexe qui peut contenir
    des sous éléments (simples ou complexes) et des attributs
    † Exemple
    † Une balise indicateur d'ordre est utilisée pour spécifier la
    logique de placement des sous balises entre elles

    BARON
    Mickael
    30
    [email protected]

    La balise person
    contient 4 éléments
    L'ordre des sous
    éléments est fixé










    sequence exprime que les
    sous éléments doivent
    apparaître dans un ordre
    spécifique (name,
    firstName, old puis email)

    View full-size slide

  30. 30
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types complexes : Sous éléments - Indicateurs d’ordre
    † Schema XML permet d'exprimer trois sortes d'indicateurs
    d'ordre désignées par les balises : all, choice et sequence
    † La balise all spécifie que tous les sous éléments peuvent
    apparaître dans n'importe quel ordre











    Mickael
    [email protected]
    30
    BARON

    La balise person
    contient 4 éléments
    utilisables dans
    n'importe quel ordre

    View full-size slide

  31. 31
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types complexes : Sous éléments - Indicateurs d’ordre
    † La balise choice exprime qu'un seul élément parmi tous les
    sous éléments peut apparaître
    † La balise sequence spécifie que les sous éléments doivent
    apparaître dans un ordre spécifique











    30

    La balise person contient 4
    éléments dont 1 seul peut
    être utilisé











    BARON
    Mickael
    30
    [email protected]

    La balise person contient 4
    éléments qui doivent apparaître
    dans un ordre donné

    View full-size slide

  32. 32
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types complexes : Sous éléments - Indicat. d'occurrence
    † Les indicateurs d'occurrence sont utilisés pour exprimer le
    nombre de fois qu'un sous élément peut apparaître
    † Ils sont exprimés sous la forme d'attributs d'un sous élément
    † maxOccurs : précise le nombre d'occurrence maximum
    † minOccurs : précise le nombre d'occurrence minimum
    † Si les valeurs de maxOccurs ou minOccurs ne sont pas
    explicitement précisées, la valeur par défaut est de 1
    † Pour définir une valeur infinie, fixer la valeur à unbounded










    View full-size slide

  33. 33
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types complexes : Sous éléments
    † Un élément de type complexe contenant des sous éléments
    peut également contenir des attributs

    BARON
    Mickael
    30
    [email protected]

    † Les attributs sont exprimés à la suite de l'indicateur d'ordre











    L'élément de type
    complexe contient
    un attribut
    La liste des attributs
    doit être placée
    obligatoirement à la
    suite de l'indicateur
    d'ordre

    View full-size slide

  34. 34
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types complexes : Mixe (attributs, éléments et textes)
    † Il s'agit d'un élément de type complexe qui peut contenir un
    mélange de sous éléments, d'attributs et de textes
    † Pour utiliser du texte libre entre les différents éléments,
    l'attribut mixed de la balise complexType doît être à true

    Dear Mr.Robert Smith.
    Your order of 1 Baby
    Monitor shipped from our warehouse on
    1999-05-21. ....












    ...



    Du texte est défini
    entre les éléments et
    les sous éléments

    View full-size slide

  35. 35
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Types complexes : complexContent
    † Possibilité de définir un nouveau type complexe sur la base
    d'un type complexe existant de manière à étendre ou à
    restreindre les éléments
    † Utilisation de la balise complexContent
    † Exemple

















    Le type Address définit
    trois sous éléments en
    séquence
    Le type USAddress
    propose une extension
    avec deux nouveaux
    sous éléments en
    séquence

    View full-size slide

  36. 36
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Annotations
    † L'annotation permet d'enrichir la description d'un Schema
    XML pour les bénéfices des utilisateurs et d'outils d'analyse
    † L'annotation est réalisée au travers de la balise annotation et
    propose deux sous éléments (occurrences multiples)
    † documentation : contient généralement une description relative à un
    élément du Schema XML
    † appinfo : est généralement utilisée pour enrichir la description du
    Schema XML et exploitable par exemple par des outils de génération
    † Le type de documentation et appinfo est anyType ce qui
    permet de ne pas imposer de contraintes sur le contenu

    View full-size slide

  37. 37
    Schema XML - M. Baron - Page
    mickael-baron.fr mickaelbaron
    Annotations
    † Exemple : utilisation de la balise annotation




    Remarque pertinente concernant l'enfant
    other




    Age de l'enfant compris entre 1 et 50 ans
    age



    Sexe de l'enfant : homme, femme ou
    indéterminé
    sexe



    Chaque attribut de l'élément child est
    décoré d'une annotation
    La balise appinfo donne des
    renseignements supplémentaires

    View full-size slide