Schema pour le document commande.xml Balise de déclaration d'un schéma Balise de déclaration d'un élément Elément complexe Déclaration d'un attribut"> Schema pour le document commande.xml Balise de déclaration d'un schéma Balise de déclaration d'un élément Elément complexe Déclaration d'un attribut">

La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les Schémas XML Le standard W3C.

Présentations similaires


Présentation au sujet: "Les Schémas XML Le standard W3C."— Transcription de la présentation:

1 Les Schémas XML Le standard W3C

2 Concepts de base: 1er exemple
<xsd:schema xmlns:xsd= " " > <xsd:annotation> <xsd:documentation > Schema pour le document commande.xml </xsd:documentation> </xsd:annotation> <xsd:element name= "commande" type= "CommandeType" /> <xsd:element name= "commentaire" type= "xsd:string" /> <xsd:complexType name= "CommandeType" > <xsd:sequence> <xsd:element name= "envoyera" type= "Adresse" /> <xsd:element name= "facturation" type= "Adresse" /> </xsd:sequence> <xsd:attribute name= "datecommande" type= "xsd:date" /> </xsd:complexType> <xsd:complexType name= "Adresse" > <xsd:element name= "nom" type= "xsd:string" /> <xsd:element name= "ville" type= "xsd:string" /> <xsd:element name= "codepostal" type= "xsd:decimal" /> </xsd:schema> Balise de déclaration d'un schéma Balise de déclaration d'un élément Elément complexe Déclaration d'un attribut

3 Concepts de base:document XML valide
<?xml version= "1.0" ?> <commande datecommande= " " > <envoyera> <nom> Alice Dupond </nom> <ville> Strasbourg</ville> <codepostal> </codepostal> </envoyera> <facturation> <nom> Robert Dupond </nom> <ville> Strasbourg </ville> </facturation> </commande>

4 Concepts de base: déclaration d'éléments
Définition: <element default= string fixed= string form= (qualified|unqualified) maxOccurs= (entier positif |unbounded):1 minOccurs= entier positif:1 name= NCname nillable= boolean:false ref= QName substitutionGroup=QName type= Qname > Contenu: (annotation?, ((simpleType |complexType)?,(unique|key|keyref)*)) </element>

5 Concepts de base: contraintes d'occurence
minOccurs, maxOccurs, fixed,default notes 1, 1, -, - Elément devant apparaître une fois, il peut avoir n'importe quelle valeur 1,1,37,- Elément devant apparaître une fois, sa valeur doit être 37 0,1,-,- Elément pouvant apparaître une fois, il peut avoir n'importe quelle valeur 2, unbounded, 37,- Elément devant apparaître 2 fois ou plus, sa valeur doit être 37 0,1,-,37 Elément pouvant apparaître 1 fois, si il n'apparaît pas sa valeur est 37 sinon sa valeur est celle donnée 0,2,-,37 Elément pouvant apparaître 1fois, 2 fois ou pas du tout, si l'élément est vide, sa valeur est 37, sinon sa valeur est celle donnée 0,1,37,- Elément pouvant apparaître 1 fois, si il apparaît sa valeur doit être 37, sinon sa valeur est 37 0,0,-,- L'élément ne doit pas apparaître

6 Concepts de base: attribut ref
Il est possible d'utiliser un élément existant plutôt que d'en déclarer un nouveau: Ex: <xsd:element ref="commentaire" minOccurs="0"/> Cette déclaration fait référence à un élément existant, commentaire, déclarer ailleurs dans le schéma. ref doit faire référence à un élément global, fils de l'élément schema.

7 Concepts de base: éléments simples
Définition: <simpleType Name= NCName> Content: (annotation?,(restriction|list|union)) </simpleType> <restriction base= QName> Content: (annotation?,(simpleType?,(minExclusive|minInclusive| maxExclusive|maxInclusive|totalDigits|fractionDigit|length|minLength|maxLength|enumeration|whiteSpace|pattern)*)) </restriction>

8 Concepts de base: éléments simples
<list itemType=QName> Content: (annotation?,(simpleType?)) </list> <union memberTypes=Liste de QName> Content: (annotation?,(simpleType*)) </union>

9 Éléments simples prédéfinis
Type simple exemples string chaîne positiveInteger 1,126789 normalizedString negativeInteger ,-1 token nonNegativeInteger 0,1,126789 byte -1,126 nonPositiveInteger ,-1,0 unsignedByte 0,126 int -1, base64Binary GpM7 unsignedInt 0, hexBinary 0FB7 long -1, integer ,-1,0,1,126789 unsigned long 0, short -1,12678 unsigned short 0,12678 decimal -1.23,0,123.4,1000.0 float -INF,-1E4,-0,0, 12.78E-2

10 Éléments simples prédéfinis
Type simple exemples double -INF,-1E4,-0,0,12.78E-2,12,INF,NaN gMonthDay boolean True,false,1,0 Name envoyera time 13:20:00.000 QName Po:Adresse dateTime T13:20:00.000 NCName Adresse duration P1Y2M3DT10H30M12.3S anyURY date language En-GB,en-US,fr gMonth --05-- ID Uniquement dans les attributs gYear 2003 IDREF idem gYearMonth IDREFS gDay ---31 ENTITY ENTITIES NMTOKEN NOTATION NMTOKENS

11 Elément simples: restriction
Exemples: <xsd:simpleType name= "monEntier" > <xsd:restriction base= "xsd:integer" > <xsd:minInclusive value= "10000" /> <xsd:maxInclusive value= "99999" /> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name= "dessert" > <xsd:restriction base= "xsd:string" > <xsd:enumeration value= "patisserie" /> <xsd:enumeration value= "glace" />

12 Elément simple: liste Exemple:
<xsd:simpleType name= "maListedEntier" > <xsd:list itemType= "monEntier" /> <xsd:simpleType> Élément XML satisfaisant cette définition: <maListedEntier> </maListedEntier>

13 Elément simple: union Exemple: <xsd:simpleType name= "cpunion" >
<xsd:union memberTypes= "xsd:string maListedEntier" /> </xsd:simpleType> <xsd:element name= "cp" type= "cpunion" /> Eléments XML satisfaisant cette définition: <cp> bas-rhin </cp> <cp> </cp>

14 Concepts de base: éléments complexes
Définition: <complexType mixed=boolean:false name=NCName> Content: (annotation?, (simpleContent|complexContent|((group|all|choice| sequence)?,((attribute|attributeGroup)*,anyAttribute?)))) </complexType>

15 Élément complexe: simpleContent
Definition: <simpleContent> Content: (annotation?,(restriction|extension)) </simpleContent> <restriction> Content: (annotation?,(simpleType?,(minExclusive|minInclusive|maxExclusive|maxInclusive|totalDigits|fractionDigits|length|minLength|maxLength| enumeration|whiteSpace|pattern)*)?,((attribute|attributeGroup)*, anyAttribute?)) </restriction> <extension> Content: (annotation?,((attribute|attributeGroup)*,anyAttribute?)) </extension>

16 Élément complexe: simpleContent
Exemple: <xsd:complexType name= "long1" > <xsd:simpleContent> <xsd:extension base="xsd:nonNegativeInteger"> <xsd:attribute name="unit" type="xsd:NMTOKEN"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType>

17 Elément complexe: complexContent
Définition: <complexContent mixed=boolean> Content: (annotation?,(restriction|extension)) </complexContent> <restriction base=QName> Content:(annotation?,(group|all|choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?)) </restriction> <extension Content: (annotation?,(group|all|choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?)) </extension>

18 Elément complexe: complexContent
Exemple: <xsd:complexType name= "nomdepersonne" > <xsd:sequence> <xsd:element name= "prenom" minOccurs= "0" maxOccurs= "unbounded" /> <xsd:element name= "nom" /> </xsd:sequence> </xsd:complexType> <xsd:complexType nom= "nometendu" > <xsd:complexContent> <xsd:extension base= "nomdepersonne" > <xsd:element name= "generation" minOccurs= "0" /> </xsd:extension> </xsd:complexContent>

19 Elément complexe: group,all, choice,sequence
Définition: <group Name=NCName > Content: (annotation?,(all|choice|sequence)) </group> <all maxOccurs=1:1 minOccurs=(0|1):1> content: (annotation?,element*) </all> <choice maxOccurs=(nonNegativeInteger|unbounded):1 minOccurs=nonNegativeInteger:1> content: (annotation?,(element|group|choice|sequence|any)*) </choice> <sequence </sequence>

20 Elément complexe: group,all, choice,sequence
Exemple <xs:group name= "monGroup" > <xs:sequence> <xs:element ref= "quelquechose" /> . . . </xs:sequence> </xs:group> <xs:complexType name= "trivial" > <xs:group ref= "monGroup" /> <xs:attribute /> </xs:complexType>

21 Elément complexe: group,all, choice,sequence
Exemple: <xs:complexType name= "enplus" > <xs:choice> <xs:element ref= "autrechose" /> <xs:group ref= "monGroup" /> </xs:choice> <xs:attribute .../> </xs:complexType>

22 Elément complexe: group,all, choice,sequence
Exemple: <xs:all> <xs:element ref= "chats" /> <xs:element ref= "chiens" /> </xs:all> <xs:sequence> <xs:choice> <xs:element ref= "gauche" /> <xs:element ref= "droite" /> </xs:choice> <xs:element ref= "paysage" /> </xs:sequence>

23 Concepts de base: déclaration d’attributs
Définition: <attribute default=string fixed=string form=(qualified|unqualified) name=NCName ref=QName type=QName use=(optional|prohibited|required):optional> Content: (annotation?,(simpleType?)) </attribute>

24 Concepts de base: déclaration d’attributs
Exemples: <xsd:attribute name= "age" type= "xsd:positiveInteger" use= "required" /> <xsd:complexType> <xsd:attribute name= "nom" type= "xml:lang" use= "required" /> <xsd:attribute name= "version" type= "xsd:number" fixed= "1.0" /> </xsd:complexType>

25 Concepts de base: groupe d'attributs
Définition: <attributeGroup name=NCName ref=QName> Content: (annotation?,(attribute|attributeGroup)*,anyAttribute?)) </attributeGroup>

26 Concepts de base: groupe d'attributs
Exemple: <xsd:attributeGroup name= "mongroupe" > <xsd:attribute /> <xsd:attributeGroup> <xsd:complexType name= "monelement" > . . . <xsd:attributeGroup ref= "mongroupe" /> <xsd:complexType>


Télécharger ppt "Les Schémas XML Le standard W3C."

Présentations similaires


Annonces Google