xml- schéma
TRANSCRIPT
XML- SCHÉMA
Mustapha [email protected]://fr.slideshare.net/mustaphahain/ENSAM-Casablanca
LES LIMITES DES DTD
Une DTD ne permet pas de typer les données;
Une DTD est non extensible.
Une DTD prendre en compte un seul espace de nom.
En réponse aux lacunes des DTD, une alternative a été
proposée comme recommandation : il s’agit de XML-
Schéma. Cette nouvelle norme achève de faire d’XML un
format pivot… La version 1.1 de XML Schéma (datée de
mai 2001) se compose de 3 normes :
1. XML Schema tome 0 : Introduction
2. XML Schema tome 1 : Structures
3. XML Schema tome 2 : Types de données
XML- SCHÉMA
Le document XML-Schéma est un document xml, il nous permet de : Spécifier la typologie des données que va contenir le
document XML décrit par le XML-Schéma; Gérer une quarantaine de types de données simples, Gérer des types complexes, Gérer les occurrences des données.
XML- SCHÉMA
L'extension du fichier
".xsd"<!-- Prologue --><?xml version="1.0" encoding="UTF-8" ?><!-- Le corps --><!-- Elément racine --><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
< xsd: element name = "ElementName" ><!-- déclarer les éléments, les attributs et les types-->< xsd: attribute name = " AttrName" >
</xsd:schema>
élément racine
XML- SCHÉMAStructure d'un schéma XML
L'extension du fichier
".xsd"
Référencer
XML- SCHÉMARéférencer un schéma XML
".xml"
<?xml version="1.0" encoding="UTF-8"?>
<racine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Schema1.xsd">
</racine>
XML-Schéma permet d’utiliser des données : de type prédéfini (string, int…); de type complexe; dont le type est une restriction de type; dont le type est une extension de type.
Il est possible de déclarer un type de données Dans la déclaration d’un élément (local) Hors de la déclaration de l’élément (global)
XML- SCHÉMATypes de données
Types prédéfinis : byte, unsignedByte, hexBinary, integer,
positiveInteger, negativeInteger, int, unsignedInt, long, unsignedLong, short, unsignedShort, decimal,
float, double… string, NormalizedString, token boolean, anyURI, time, dateTime, duration, date, gMonth, gYear,
gYearMonth, gDay, gMonthDay ID, IDREF, IDREFS, ENTITY, ENTITIES, NOTATIN,NMTOKEN, NMTOKENS
XML- SCHÉMATypes de données
Déclaration d’éléments simples
XML- SCHÉMATypes de données
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<xsd:element name="nom" type="xsd:string"/>
<xsd:element name="HireDate" type="xsd:date" />
<xsd:element name="amis" type="xsd:string" minoccurs= "1"
maxoccurs="unbounded"/>
<xsd:element name="gsm" type="xsd:string" maxoccurs="5"/>
</xsd:schema>
Ecrire le code xml en se basant sur le schéma suivant :
<nom>hani</nom>
<email>[email protected]</email>
<age>22</age>
<xsd:element name="nom" type="xsd:string" />
<xsd:element name="email" type="xsd:string" ></xsd:element>
<xsd:element name="age" type="xsd:int" ></xsd:element>
XML- SCHÉMATypes de données
<xsd:element name="prenom" type="xsd:string" default= "Karim" />
<!-- valide --><prenom>Reda</prenom>
<!-- valide --><prenom>Ahmed</prenom>
<!-- valide --><!-- la balise prenom vaut "karim" --><prenom ></prenom>
XML- SCHÉMATypes de données -Valeur par défaut
<xsd:element name="prenom" type="xsd:string" fixed= "karim" />
<!-- valide --><prenom>karim</prenom>
<!-- invalide --><prenom>Rami</prenom>
<!-- invalide --><prenom></prenom>
XML- SCHÉMATypes de données-Valeur constante
Déclarer un attribut
<xsd:attribut name="mon_att" type="xsd:mon_type" />
<formation niveau="debutant">Android </formation>
<xsd:attribut name= "niveau" type="xsd:string" />
XML- SCHÉMATypes de données
<xsd:attribut name= "langue" type="xsd:string" default= "English" />
<xsd:attribut name= "pays" type="xsd:string" fixed= " MAROC" />
Attribut obligatoire
<xsd:attribut name= "email" type="xsd:string" use="required" />
Valeur constante
Valeur par défaut
XML- SCHÉMATypes de données
• Les restrictions sur des plages de données, desséries de valeurs, des longueurs de caractères…Exemple :
<xs:element name="note"><xs:simpleType>
<xs:restriction base="xsd: positiveInteger"><xs:minInclusive value="0"/><xs:maxInclusive value="20"/>
</xs:restriction></xs:simpleType>
</xs:element>
XML- SCHÉMATypes de données- les restrictions
• Restrictions sur un ensemble de valeursExemple :
<xs:element name="client"><xs:simpleType>
<xs:restriction base="xs:string"><xs:enumeration value="clientA"/><xs:enumeration value="clientB"/><xs:enumeration value="clientC"/>
</xs:restriction></xs:simpleType>
</xs:element>
XML- SCHÉMATypes de données- les restrictions
Restrictions sur une série de valeursExemple :
<xs:element name="ssn"><xs:simpleType>
<xs:restriction base="xs:string"><xs:pattern value="\d{3}-\d{2}-\d{4}"/>
</xs:restriction></xs:simpleType>
</xs:element>
XML- SCHÉMATypes de données- les restrictions
Restriction sur le longuer d’un élémentExemple :
<xs:element name="password"><xs:simpleType>
<xs:restriction base="xs:string"><xs:length value="8"/>
</xs:restriction></xs:simpleType>
</xs:element>
XML- SCHÉMATypes de données- les restrictions
19
XML- SCHÉMATypes de données-Les éléments complexes
Un élément complexe est un élément XML qui contient d'autres éléments et / ou des attributs.
Déclarer un élément complexe<xsd:element name="mon_nom">
<xsd:complexType> <!-- contenu ici -->
<xsd:complexType></xsd:element>
20
Concernant les types complexes, il existe 3 types de contenus possibles :
1. Les contenus simples.2. Les contenus "standards".3. Les contenus mixtes.
XML- SCHÉMATypes de données-Les éléments complexes
<personne> <!-- la balise nom est un élément simple --> <nom>Rmai</nom> <!-- la balise prenom est un élément simple --> <prenom>Amal</prenom></personne>
<xs:element name="person"><xs:complexType>
<xs:sequence><xs:element name="firstname" type="xs:string"/><xs:element name="lastname" type="xs:string"/>
</xs:sequence></xs:complexType></xs:element>
XML- SCHÉMATypes de données-Les éléments complexes
Les indicateurs: Indicateur de séquence
Les indicateurs: Indicateur de choix
xs:element name="person"><xs:complexType>
<xs:choice><xs:element name="employee" type="employee"/><xs:element name="member" type="member"/>
</xs:choice></xs:complexType></xs:element>
XML- SCHÉMATypes de données-Les éléments complexes
soit l’élément complexe suivant:
XML- SCHÉMATypes de données-Les éléments complexes
<xs:element name="employee"><xs:complexType>
<xs:sequence><xs:element name="firstname" type="xs:string"/><xs:element name="lastname" type="xs:string"/>
</xs:sequence></xs:complexType>
</xs:element>
<employee><firstname>Radi</firstname><lastname>laila</lastname>
</employee>
<xsd:element name="pages" type="xsd:positiveInteger"/><xsd:element name="auteur" type="xsd:string"/>
<xsd:element name="livre"><xsd:complexeType>
<xsd:sequence><xsd:element ref="auteur"/><xsd:element ref="pages"/>
<xsd:sequence><xsd:complexeType>
</xsd:element>
XML- SCHÉMATypes de données-Les éléments complexes / ref
25
DémonstrationTravaillons ensemble
Merci de votre attention