xml- schéma

26
XML- SCHÉMA Mustapha HAIN [email protected] Abcdformation.blogspot.co m http:// fr.slideshare.net/ mustaphahain/ ENSAM-Casablanca

Upload: mustapha-hain

Post on 11-Apr-2017

182 views

Category:

Education


2 download

TRANSCRIPT

Page 1: XML- Schéma

XML- SCHÉMA

Mustapha [email protected]://fr.slideshare.net/mustaphahain/ENSAM-Casablanca 

Page 2: XML- Schéma

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.

Page 3: XML- Schéma

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

Page 4: 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

Page 5: 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

Page 6: XML- Schéma

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>

Page 7: XML- Schéma

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

Page 8: XML- Schéma

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

Page 9: XML- Schéma

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>

Page 10: XML- Schéma

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

Page 11: XML- Schéma

<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

Page 12: XML- Schéma

<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

Page 13: XML- Schéma

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

Page 14: XML- Schéma

<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

Page 15: XML- Schéma

• 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

Page 16: XML- Schéma

• 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

Page 17: XML- Schéma

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

Page 18: XML- Schéma

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

Page 19: XML- Schéma

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>

Page 20: XML- Schéma

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>

Page 21: XML- Schéma

<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

Page 22: XML- Schéma

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

Page 23: XML- Schéma

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>

Page 24: XML- Schéma

<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

Page 25: XML- Schéma

25

DémonstrationTravaillons ensemble

Page 26: XML- Schéma

Merci de votre attention