Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
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>
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.