1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD,...

47
1 Les technologies XML Les technologies XML Cours 1.2 : Cours 1.2 : Introduction au langage Introduction au langage XML XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009 Janvier 2009

Transcript of 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD,...

Page 1: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

1

Les technologies XMLLes technologies XML

Cours 1.2 : Cours 1.2 : Introduction au langage Introduction au langage XMLXML

(XML, DTD, XML-Schema)(XML, DTD, XML-Schema)

Janvier 2009 Janvier 2009

Page 2: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

2

PRESENTATION DU COURS 1/2PRESENTATION DU COURS 1/2

0 : Rappel du HTML : pages statiques, styles, Javascript0 : Rappel du HTML : pages statiques, styles, Javascript

1 : Introduction au langage XML :1 : Introduction au langage XML : XML DTD XML-Schema

2 : XHTML 2 : XHTML

3 : Transformation de documents XML :3 : Transformation de documents XML : XPath XSLT

4 :Présentation de documents XML :4 :Présentation de documents XML : XSL Fo

5 : Langages XML5 : Langages XMLXqueryXMIXUL

Page 3: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

3

PROBLEMATIQUE PROBLEMATIQUE 1/21/2

Informations et documents dans l’entrepriseInformations et documents dans l’entreprise

Constat :Constat : Inflation du volume d’informations

Coût et difficulté :Coût et difficulté : Difficultés à retrouver un document Coût induit par la gestion de documents

Page 4: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

4

PROBLEMATIQUE PROBLEMATIQUE 2/22/2

1986 : 1986 : SGMLSGML 1991 : 1991 : HTMLHTML 1998 : 1998 : XMLXML

ObjectifsObjectifs

adaptabilité,adaptabilité,

intelligence,intelligence,

gestion des gestion des liensliens

simple, simple,

portable,portable,

gestion de gestion de liensliens

puissance puissance de SGML,de SGML,

simplicité simplicité du HTMLdu HTML

InconvénientsInconvénients

complexe,complexe,

difficilement difficilement portableportable

non non adaptable, adaptable,

non non intelligentintelligent

Page 5: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

5

W3CW3C

Le WORLD WIDE WEB Consortium crée des standards pour Le WORLD WIDE WEB Consortium crée des standards pour le Web.le Web.

Le W3C en 7 points…Le W3C en 7 points…

Accès universel Accès universel (internationalisation, web mobile…)(internationalisation, web mobile…)

Web sémantique Web sémantique (RDF, XML…)(RDF, XML…)

Confiance Confiance (signatures électroniques, collaboratif…)(signatures électroniques, collaboratif…)

Intéropérabilité Intéropérabilité (consensus industriel)(consensus industriel)

Evolutivité Evolutivité (simplicité, modularité, compatibilité…)(simplicité, modularité, compatibilité…)

Décentralisation Décentralisation (systèmes répartis, tolérance aux erreurs)(systèmes répartis, tolérance aux erreurs)

Multimédia Multimédia (SVG, SMIL…)(SVG, SMIL…)

Pour plus d’informations : www.w3c.orgPour plus d’informations : www.w3c.org

Page 6: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

6

CARACTERISTIQUESCARACTERISTIQUES

Richesse sémantique de SGMLRichesse sémantique de SGML Compatible SGMLCompatible SGML

Dédié au traitement des donnéesDédié au traitement des données

Soutenant une grande variété d’applicationsSoutenant une grande variété d’applications

Assurant un entretien aiséAssurant un entretien aisé

IntelligentIntelligent

Facilité de mise en œuvre de HTMLFacilité de mise en œuvre de HTML Simple et lisibleSimple et lisible

Portable et facilement utilisable sur InternetPortable et facilement utilisable sur Internet

Assurant un développement aiséAssurant un développement aisé

Page 7: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

7

DEFINITION DEFINITION 1/21/2

eXtensible Markup LanguageeXtensible Markup Language

Recommandation (norme) du W3CRecommandation (norme) du W3C

Spécifiant un langageSpécifiant un langage

Constitué d’un ensemble d’éléments appelés Constitué d’un ensemble d’éléments appelés balisesbalises

Utilisable pour créer d’autres langagesUtilisable pour créer d’autres langages

2 concepts fondamentaux2 concepts fondamentaux

Structure, contenu et présentation sont séparésStructure, contenu et présentation sont séparés

Les balises ne sont pas figéesLes balises ne sont pas figées

Page 8: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

8

DEFINITION DEFINITION 2/22/2

Conséquences :Conséquences :

XML est un format de documentXML est un format de document

XML est un format de donnéesXML est un format de données

XML est un mode de structuration de l’informationXML est un mode de structuration de l’information

XML est un méta-langageXML est un méta-langage

Page 9: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

9

Exemple (1)Exemple (1)

<dd> Ma chanson (identification de la définition d'un terme)<dd> Ma chanson (identification de la définition d'un terme)

<ul> <ul>

<li> par l'auteur</li><li> par l'auteur</li>

<li> Producteur : Dupond</li><li> Producteur : Dupond</li>

<li> Editeur : Maison edition</li><li> Editeur : Maison edition</li>

<li> Duree : 6:20</li><li> Duree : 6:20</li>

<li> Date : 1978</li><li> Date : 1978</li>

<li> Artiste : Toto</li><li> Artiste : Toto</li>

</ul></ul>

</body></body>

</html></html>

ExHTML6.htmlExHTML6.html

Page 10: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

10

Exemple (2)Exemple (2)

XMLXML

<SONG><SONG>

<TITLE> Ma chanson </TITLE><TITLE> Ma chanson </TITLE>

<COMPOSER> par l’auteur</COMPOSER><COMPOSER> par l’auteur</COMPOSER>

<PRODUCER> Dupond</PRODUCER><PRODUCER> Dupond</PRODUCER>

<EDITOR> Maison edition</EDITOR><EDITOR> Maison edition</EDITOR>

<DURATION> 6:20</DURATION><DURATION> 6:20</DURATION>

<DATE> 1978</DATE><DATE> 1978</DATE>

<ARTIST> Toto</ARTIST><ARTIST> Toto</ARTIST>

</SONG></SONG>

Balises “propriétaires” compréhensibles à la profession, Balises “propriétaires” compréhensibles à la profession, dérivation des langages proprétaires. dérivation des langages proprétaires.

XML sépare le contenu de son aspect ( à la différence de XML sépare le contenu de son aspect ( à la différence de HTML ou tout peut être mélangé)HTML ou tout peut être mélangé)

Page 11: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

11

APPLICATIONS APPLICATIONS 1/21/2

GED et Gestion de Contenu :GED et Gestion de Contenu :

GED traditionnelle : statique, redondante, lourdeGED traditionnelle : statique, redondante, lourde

Apports d’XML : dynamique, cohérence, Apports d’XML : dynamique, cohérence, intelligenceintelligence

EDI :EDI :

Exploitation des données : complexe, rigideExploitation des données : complexe, rigide

Apports d’XML : simplicité, flexibilité, intelligenceApports d’XML : simplicité, flexibilité, intelligence

Page 12: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

12

APPLICATIONS APPLICATIONS 2/22/2

Interopérabilité de SI hétérogènes :Interopérabilité de SI hétérogènes :

Architectures existantes : complexité, Architectures existantes : complexité, dépendancesdépendances

Apports d’XML : simplicité, flexibilité, Apports d’XML : simplicité, flexibilité, indépendanceindépendance

Commerce électronique :Commerce électronique :

Exploitation de l’information : complexe, Exploitation de l’information : complexe, statiquestatique

Apports d’XML : relation client personnaliséeApports d’XML : relation client personnalisée

Page 13: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

13

STRUCTURE D’UN STRUCTURE D’UN DOCUMENT XMLDOCUMENT XML

Page 14: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

14

SPECIFICATIONS DU SPECIFICATIONS DU LANGAGE XMLLANGAGE XML

Résumé des spécifications :Résumé des spécifications :

Un document doit commencer par une déclaration XMLUn document doit commencer par une déclaration XML

Toutes les balises avec un contenu doivent être ferméesToutes les balises avec un contenu doivent être fermées

Toutes les balises sans contenu doivent se terminer par les Toutes les balises sans contenu doivent se terminer par les caractères />caractères />

Le document doit contenir un et un seul élément racineLe document doit contenir un et un seul élément racine

Les balises ne doivent pas se chevaucherLes balises ne doivent pas se chevaucher

Les valeurs d’attributs doivent être entre guillemetsLes valeurs d’attributs doivent être entre guillemets

La casse doit être respectée pour toutes les occurrences de La casse doit être respectée pour toutes les occurrences de noms de balise (MAJUSCULES ou minuscules).noms de balise (MAJUSCULES ou minuscules).

Un document respectant ces critères est dit Un document respectant ces critères est dit “bien form锓bien formé”

Page 15: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

15

DTD = Document Type Definition DTD = Document Type Definition

La DTD fournit : La DTD fournit :

la liste des éléments, la liste des éléments,

la liste des attributs, la liste des attributs,

des notations et des notations et

des entités du document XML associé ainsi quedes entités du document XML associé ainsi que

les règles des relations qui les régissent.les règles des relations qui les régissent.

DEFINITIONS DE TYPES DE DEFINITIONS DE TYPES DE DOCUMENT DOCUMENT 1/51/5

Page 16: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

16

DEFINITIONS DE TYPES DE DEFINITIONS DE TYPES DE DOCUMENT DOCUMENT 2/52/5

La DTD est déclarée dans le document XML par La DTD est déclarée dans le document XML par la balise !DOCTYPEla balise !DOCTYPE

Elle peut être :Elle peut être :

incluse dans le code source du fichier XML, ou DTD incluse dans le code source du fichier XML, ou DTD interneinterne : :

<!DOCTYPE élément-racine [déclaration des éléments]>

décrite dans un fichier externe, ou DTD décrite dans un fichier externe, ou DTD externeexterne : :

<!DOCTYPE élément-racine SYSTEM "nom_fichier.dtd">

Page 17: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

17

DEFINITIONS DE TYPES DE DEFINITIONS DE TYPES DE DOCUMENT DOCUMENT 3/53/5

Exemple de DTD interneExemple de DTD interne

<?xml version="1.0" standalone="yes"?<?xml version="1.0" standalone="yes"?>>

<!DOCTYPE parent [<!DOCTYPE parent [

<!ELEMENT parent (garcon,fille)><!ELEMENT parent (garcon,fille)>

<!ELEMENT garcon (#PCDATA)><!ELEMENT garcon (#PCDATA)>

<!ELEMENT fille (#PCDATA)><!ELEMENT fille (#PCDATA)>

]>]>

<parent><parent><garcon>François</garcon><garcon>François</garcon><fille>Elisabeth</fille><fille>Elisabeth</fille></parent> </parent>

Comme vous définissez une DTD interne,Comme vous définissez une DTD interne,votre fichier est indépendant (standalone).votre fichier est indépendant (standalone).

Début de la DTD interne avec parent commeDébut de la DTD interne avec parent commeélément de racine.élément de racine.

L’élément racine parent contiendraL’élément racine parent contiendrales sous-éléments garcon et fille.les sous-éléments garcon et fille.

#PCDATA indique au Parser XML que#PCDATA indique au Parser XML quel'élément garcon contient des donnéesl'élément garcon contient des donnéesexprimées en chiffres ou en lettres.exprimées en chiffres ou en lettres.Idem pour l'élément fille.Idem pour l'élément fille.

Fin de la DTDFin de la DTD

Racine du document XML.Racine du document XML.

Fin du document XML.Fin du document XML.

Page 18: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

18

DEFINITIONS DE TYPES DE DEFINITIONS DE TYPES DE DOCUMENT DOCUMENT 4/54/5

Exemple de DTD externe : reprise de l’exemple Exemple de DTD externe : reprise de l’exemple précédent, en version DTD externeprécédent, en version DTD externe

<?xml version="1.0" standalone="no"?><?xml version="1.0" standalone="no"?>

<!DOCTYPE parent SYSTEM "parent.dtd"><!DOCTYPE parent SYSTEM "parent.dtd">

<parent><parent><garcon>François</garcon><garcon>François</garcon><fille>Elisabeth</fille><fille>Elisabeth</fille></parent></parent>

Fichier XML. Comme vous définissez uneFichier XML. Comme vous définissez uneDTD externe, votre fichier n’est plusDTD externe, votre fichier n’est plusindépendant (standalone).indépendant (standalone).

Déclaration de la DTD externe dans leDéclaration de la DTD externe dans leFichier parent.dtd.Fichier parent.dtd.

Racine du document XML.Racine du document XML.

Fin du document XML.Fin du document XML.

<!ELEMENT parent (garcon,fille)><!ELEMENT parent (garcon,fille)>

<!ELEMENT garcon (#PCDATA)><!ELEMENT garcon (#PCDATA)>

<!ELEMENT fille (#PCDATA)><!ELEMENT fille (#PCDATA)>

Fichier parent.dtdFichier parent.dtdL’élément racine parent contiendraL’élément racine parent contiendrales sous-éléments garcon et fille.les sous-éléments garcon et fille.#PCDATA indique au Parser XML que#PCDATA indique au Parser XML quel'élément garcon contient des donnéesl'élément garcon contient des donnéesexprimées en chiffres ou en lettres.exprimées en chiffres ou en lettres.Idem pour l'élément fille.Idem pour l'élément fille.

Page 19: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

19

DEFINITIONS DE TYPES DE DEFINITIONS DE TYPES DE DOCUMENT DOCUMENT 5/55/5

La DTD contient :La DTD contient :

Une ou plusieurs définitions d’éléments introduites par Une ou plusieurs définitions d’éléments introduites par la balise !ELEMENT :la balise !ELEMENT :<!ELEMENT nom-élément valeur>

Une ou plusieurs listes d’attributs introduites par la Une ou plusieurs listes d’attributs introduites par la balise !ATTLIST :balise !ATTLIST :<!ATTLIST nom-élément attribut type défaut>

Une ou plusieurs définitions d’entité introduites par la Une ou plusieurs définitions d’entité introduites par la balise !ENTITY :balise !ENTITY :<!ENTITY nom-entité "valeur">ou<!ENTITY nom-entité SYSTEM "nom_fichier">

Page 20: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

20

DTD : ELEMENTS DTD : ELEMENTS 1/41/4

Chaque balise d’un document XML valide doit être déclarée à Chaque balise d’un document XML valide doit être déclarée à l’aide d’un élément dans la DTD associée.l’aide d’un élément dans la DTD associée.

Un élément est défini par la balise !ELEMENT :Un élément est défini par la balise !ELEMENT :<!ELEMENT nom-élément valeur-élément>

Où :Où :

nom-élément est une balise du document XMLnom-élément est une balise du document XML

valeur-élément prend l’une des trois formes:valeur-élément prend l’une des trois formes:(contenu)

Déclaration d’un élément à contenu explicite. Exemple :<!ELEMENT sujet (#PCDATA)>

EMPTYDéclaration d’un élément vide. Utilisé en HTML pour les sautsde ligne (BR), image, filet horizontal (HR) etc. Exemple :<!ELEMENT br EMPTY>

ANYDéclaration d’un élément pouvant contenir tout typede donnée. Exemple : <!ELEMENT note ANY>

Page 21: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

21

DTD : ELEMENTS DTD : ELEMENTS 2/42/4

Contenu explicite :Contenu explicite :

Combinaison d’un ou plusieurs items :Combinaison d’un ou plusieurs items :Mot-clé #PCDATA (Parsed Character Data) : le contenu est Mot-clé #PCDATA (Parsed Character Data) : le contenu est une chaîne de caractèresune chaîne de caractèresNom d’un autre élément de la DTDNom d’un autre élément de la DTD

Chaque item peut être suivi par un caractère facultatif Chaque item peut être suivi par un caractère facultatif d’occurrence :d’occurrence :

? : l’item apparaît zéro ou au plus une fois? : l’item apparaît zéro ou au plus une fois+ : l’item apparaît au moins 1 fois+ : l’item apparaît au moins 1 fois* : l’item apparaît zéro fois ou plus* : l’item apparaît zéro fois ou plus

Les items sont séparés par :Les items sont séparés par :Le caractère virgule « , » si les 2 items sont tous deux inclus Le caractère virgule « , » si les 2 items sont tous deux inclus dans le contenudans le contenuLe caractère pipe « | » si le contenu est un choix entre les 2 Le caractère pipe « | » si le contenu est un choix entre les 2 itemsitems

Les items peuvent être regroupés à l’aide de parenthèses pour Les items peuvent être regroupés à l’aide de parenthèses pour définir des ordres de priorité ou d’occurrencedéfinir des ordres de priorité ou d’occurrence

Page 22: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

22

DTD : ELEMENTS DTD : ELEMENTS 3/43/4

ExemplesExemples

<!ELEMENT agenda (contact*)><!ELEMENT agenda (contact*)>

<!ELEMENT contact (nom, prenom?, telephone+)><!ELEMENT contact (nom, prenom?, telephone+)>

<!ELEMENT nom (#PCDATA)><!ELEMENT nom (#PCDATA)>

<!ELEMENT prenom (#PCDATA)><!ELEMENT prenom (#PCDATA)><!ELEMENT telephone (#PCDATA)><!ELEMENT telephone (#PCDATA)>

<!ELEMENT image EMPTY><!ELEMENT image EMPTY>

Définition d’un élément agenda Définition d’un élément agenda composé de zéro ou plus éléments composé de zéro ou plus éléments contact.contact.

Définition d’un élément contact, Définition d’un élément contact, composé de trois éléments : nom, composé de trois éléments : nom, prenom (facultatif), telephone (au prenom (facultatif), telephone (au moins 1 fois)moins 1 fois)

Définition d’un élément nom Définition d’un élément nom contenant une chaîne de contenant une chaîne de caractèrescaractèresIdem pour élément prenomIdem pour élément prenomIdem pour élément telephoneIdem pour élément telephone

Définition d’un élément image de Définition d’un élément image de contenu videcontenu vide

Page 23: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

23

DTD : ELEMENTS DTD : ELEMENTS 4/44/4

ExemplesExemples

Page 24: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

24

DTD : ATTRIBUTS DTD : ATTRIBUTS 1/31/3

Les balises ouvrantes et les balises vides Les balises ouvrantes et les balises vides peuvent contenir des couples nom-valeur des peuvent contenir des couples nom-valeur des attributsattributs

XML : XML :

<GREETING LANGUAGE <GREETING LANGUAGE == “English”> “English”>

Hello everybodyHello everybody

</GREETING></GREETING>

Les attributs possibles d’un élément du Les attributs possibles d’un élément du document XML sont déclarés dans la DTD document XML sont déclarés dans la DTD associée.associée.

nom valeur

Page 25: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

25

DTD : ATTRIBUTS DTD : ATTRIBUTS 2/32/3

Déclaration dans la DTD par la balise !ATTLIST :Déclaration dans la DTD par la balise !ATTLIST :

<!ATTLIST nom-élément nom-attribut type valeur-défaut><!ATTLIST nom-élément nom-attribut type valeur-défaut>Où :Où :

nom-élément est le nom d’un élément défini dans la DTD par la nom-élément est le nom d’un élément défini dans la DTD par la balise !ELEMENTbalise !ELEMENTattribut est le nom de l’attribut présentement défini pour attribut est le nom de l’attribut présentement défini pour l’élément nom-élémentl’élément nom-élémenttype peut prendre l’une des valeurs:type peut prendre l’une des valeurs:

CDATA : la valeur correspond au contenu de l’élément (choix1|choix2|…) : la valeur doit être l’une des choix énumérés ID : la valeur est un identifiant unique ENTITY : la valeur est une entité

valeur-défaut prend l’une des valeurs :valeur-défaut prend l’une des valeurs :valeur : valeur par défaut donnée à l’attribut#REQUIRED : attribut obligatoire, sans valeur par défaut#IMPLIED : attribut optionnel, sans valeur par défaut#FIXED valeur : valeur fixe

Page 26: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

26

DTD : ATTRIBUTS DTD : ATTRIBUTS 3/33/3

Exemples :Exemples :<!ELEMENT GREETING (#PCDATA)><!ELEMENT GREETING (#PCDATA)><!ATTLIST GREETING LANGUAGE CDATA “English”><!ATTLIST GREETING LANGUAGE CDATA “English”>

Définition d’un carré et de son attribut largeur :Définition d’un carré et de son attribut largeur :DTD :DTD :

<!ELEMENT carre EMPTY><!ATTLIST carre largeur CDATA “0”>

XML :XML :<carre largeur=“100”>

Liste de moyens de paiement:Liste de moyens de paiement:DTDDTD

<!ATTLIST paiement moyen (especes|cheque|CB) “CB”>

XMLXML<paiement moyen=“cheque”><!-- ... --><paiement moyen=“CB”>

Page 27: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

27

DTD : ENTITES DTD : ENTITES 1/31/3

Définition et rappel d’une entité XMLDéfinition et rappel d’une entité XMLUne entité est une variable utilisée pour définir du Une entité est une variable utilisée pour définir du texte.texte.L'intérêt d'une entité consiste à pouvoir remplacer L'intérêt d'une entité consiste à pouvoir remplacer autant de fois que nécessaire dans le document XML autant de fois que nécessaire dans le document XML l'entité par le texte qui lui est associé.l'entité par le texte qui lui est associé.Dans le document XML, la référence à une entité est Dans le document XML, la référence à une entité est introduite par le caractère "&" suivi du nom de l’entité, introduite par le caractère "&" suivi du nom de l’entité, et terminée par le caractère ";". Il existe 5 entités et terminée par le caractère ";". Il existe 5 entités prédéfinies en XML : lt, gt, amp, apos et prédéfinies en XML : lt, gt, amp, apos et quot (caractères < > & ' ")quot (caractères < > & ' ")

Une entité est définie avec la balise !ENTITY, et dite:Une entité est définie avec la balise !ENTITY, et dite:Interne si sa valeur est donnée dans la DTDInterne si sa valeur est donnée dans la DTD

<!ENTITY nom-entité "valeur">

Externe si sa valeur est fournie dans un fichier externe Externe si sa valeur est fournie dans un fichier externe à la DTDà la DTD

<!ENTITY nom-entité SYSTEM "nom_fichier">

Page 28: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

28

DTD : ENTITES DTD : ENTITES 2/32/3

Exemple de document XML avec DTD interne et entité Exemple de document XML avec DTD interne et entité interne "titre" :interne "titre" :

<?xml version="1.0"?>

<!DOCTYPE introduction [ <!ENTITY titre "Introduction au language XML" > <!-- . . . -->]>

<introduction > &titre;

<!-- . . . --></introduction >

Page 29: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

29

DTD : ENTITES DTD : ENTITES 3/33/3

Exemple de document XML avec DTD interne et entité externe Exemple de document XML avec DTD interne et entité externe "chapitre1" :"chapitre1" :

<?xml version="1.0" ?>

<!DOCTYPE livre [ <!ENTITY chapitre1 SYSTEM "chapitre1.xml">]>

<livre> <titre>Titre du livre</titre> &chapitre1;</livre>

Contenu du fichier "chapitre1.xml" :Contenu du fichier "chapitre1.xml" :<?xml version="1.0" ?><chapitre> <titre>titre du chapitre 1</titre> <section>1ère section</section> <section>2ème section</section></chapitre>

Page 30: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

30

DEFINITIONS DE TYPES DE DEFINITIONS DE TYPES DE DOCUMENT DOCUMENT 1/21/2

Résumé des spécifications :Résumé des spécifications :

Une DTD (grammaire) permet de déclarer :Une DTD (grammaire) permet de déclarer : un type d’élément, une liste d’attribut d’un élément, une entité

Chaque balise du langage doit faire l’objet d’une Chaque balise du langage doit faire l’objet d’une et d’une seule déclarationet d’une seule déclaration

Un document XML est dit “valide” s’il possède une DTD et Un document XML est dit “valide” s’il possède une DTD et si sa syntaxe est conforme aux règles de la DTDsi sa syntaxe est conforme aux règles de la DTD

Un document “valide” est obligatoirement “bien formé” Un document “valide” est obligatoirement “bien formé”

Page 31: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

31

DEFINITIONS DE TYPES DE DEFINITIONS DE TYPES DE DOCUMENT DOCUMENT 2/22/2

Espaces de nomEspaces de nom XML Namespaces est une recommandation XML Namespaces est une recommandation permettant d’utiliser le vocabulaire (les balises) de permettant d’utiliser le vocabulaire (les balises) de 2 DTD distinctes sans risque d’ambigüité.2 DTD distinctes sans risque d’ambigüité.

Inconvénients des DTD :Inconvénients des DTD : Une DTD est difficile à lireUne DTD est difficile à lire

Une DTD est non extensible (ce n’est pas un Une DTD est non extensible (ce n’est pas un document XML).document XML).

Une DTD ne permet pas de typer les donnéesUne DTD ne permet pas de typer les données

Une DTD ne peut prendre en compte qu’un seul Une DTD ne peut prendre en compte qu’un seul espace de nom (Namespace).espace de nom (Namespace).

Page 32: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

32

XML-SCHEMA XML-SCHEMA 1/41/4

En réponse aux lacunes des DTD, une En réponse aux lacunes des DTD, une alternative a été proposée comme alternative a été proposée comme recommandation : il s’agit de XML-Data dont recommandation : il s’agit de XML-Data dont XML-Schema est un sous-ensemble.XML-Schema est un sous-ensemble.

Cette nouvelle norme achève de faire d’XML Cette nouvelle norme achève de faire d’XML un format pivot…un format pivot…

La version 1.1 de XML Schema (datée de mai La version 1.1 de XML Schema (datée de mai 2001) se compose de 3 normes :2001) se compose de 3 normes :

XML Schema tome 0 : IntroductionXML Schema tome 0 : Introduction

XML Schema tome 1 : StructuresXML Schema tome 1 : Structures

XML Schema tome 2 : Types de donnéesXML Schema tome 2 : Types de données

Page 33: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

33

XML-SCHEMA XML-SCHEMA 2/42/4

Les documents XML-Schema sont des documents :Les documents XML-Schema sont des documents :

respectant la syntaxe XML,respectant la syntaxe XML,

permettant de décrire la structure d’un document XML permettant de décrire la structure d’un document XML d’une façon beaucoup plus complète que les DTD.d’une façon beaucoup plus complète que les DTD.

XML-Schema permet en effet de :XML-Schema permet en effet de :

spécifier la typologie des données que va contenir le spécifier la typologie des données que va contenir le document XML décrit par le XML-Schema,document XML décrit par le XML-Schema,

gérer une quarantaine de types de données simples,gérer une quarantaine de types de données simples,

gérer des types complexes,gérer des types complexes,

gérer les occurrences des données.gérer les occurrences des données.

Page 34: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

34

XML-SCHEMA XML-SCHEMA 3/43/4

Exemple de document XML-Schema :Exemple de document XML-Schema :

Page 35: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

35

XML-SCHEMA XML-SCHEMA 4/44/4

Page 36: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

36

ConstituantsConstituantsd’un XML-SCHEMA d’un XML-SCHEMA 1/81/8

Déclaration de l’entête :Déclaration de l’entête :

L’élément <xsd:schema> permet de déclarer un document L’élément <xsd:schema> permet de déclarer un document XML-Xchema. XML-Xchema.

L’attribut L’attribut targetNamespacetargetNamespace permet de préciser l’espace de permet de préciser l’espace de nommage de ce type de documents. nommage de ce type de documents.

L’attribut L’attribut elementFormDefaultelementFormDefault précise si les documents XML précise si les documents XML respectant cette grammaire doivent référer à cet espace de respectant cette grammaire doivent référer à cet espace de nommage.nommage.

<?xml version="1.0" encoding="ISO-8859-1" ?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"><!--balise schema obligatoire -->

Page 37: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

37

ConstituantsConstituantsd’un XML-SCHEMA d’un XML-SCHEMA 2/82/8

Déclaration des types de données :Déclaration des types de données : Il est possible de déclarer un type de donnéesIl est possible de déclarer un type de données

soit dans la déclaration d’un élément (local)

soit hors de la déclaration de l’élément (global)

XML-Schema permet d’utiliser des données :XML-Schema 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

Page 38: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

38

Constituants Constituants d’un XML-SCHEMA d’un XML-SCHEMA 3/83/8

Déclaration des types de données :Déclaration des types de données :

Types prédéfinisTypes prédéfinis : : byte, unsignedByte, hexBinary, integer,

positiveInteger, negativeInteger, int, unsignedInt, long, unsignedLong, short, unsignedShort, decimal, float, double…

string, NormalizedString, token boolean, anyURI, language time, dateTime, duration, date, gMonth, gYear,

gYearMonth, gDay, gMonthDay ID, IDREF, IDREFS, ENTITY, ENTITIES, NOTATIN,

NMTOKEN, NMTOKENS

Exemple : Exemple : <xsd:element name="comment" type="xsd:string"/><xsd:element name="comment" type="xsd:string"/>

Page 39: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

39

Constituants Constituants d’un XML-SCHEMA d’un XML-SCHEMA 4/84/8

Déclaration des types de données :Déclaration des types de données :

Types complexesTypes complexes : : Exemple : le type de données TypeAdresse se compose de 6 éléments Numero, Rue1, Rue2, Ville, CP et Pays :

Page 40: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

40

Constituants Constituants d’un XML-SCHEMA d’un XML-SCHEMA 5/85/8

Déclaration des types de données :Déclaration des types de données :

Restriction de type existantRestriction de type existant : :Exemple : le type de données string comprend 6 attributs optionnels : pattern, enumeration, length, minlength, maxlength, whitespace. Si on désire représenter un choix Oui/Non (restriction sur l’attribut enumeration) :

Page 41: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

41

Constituants Constituants d’un XML-SCHEMA d’un XML-SCHEMA 6/86/8

Déclaration des types de données :Déclaration des types de données :

Extension / dérivation de type existantExtension / dérivation de type existant : :Exemple : si l’on souhaite créer un type Personne contenant en plus du nom et du prénom, un élément de type Adresse (extension du type Adresse vu précédemment) :

Page 42: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

42

Constituants Constituants d’un XML-SCHEMA d’un XML-SCHEMA 7/87/8

Déclaration des éléments :Déclaration des éléments :

Page 43: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

43

Constituants Constituants d’un XML-SCHEMA d’un XML-SCHEMA 8/88/8

Déclaration des attributs :Déclaration des attributs :

Page 44: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

44

Conclusion :Conclusion :DTD versus XML-SCHEMADTD versus XML-SCHEMA

La DTD permet de définir facilement et La DTD permet de définir facilement et rapidement des grammaires simples.rapidement des grammaires simples.

XML-Schema permet de définir de manière plus XML-Schema permet de définir de manière plus formelle et complète une grammaire mais c’est formelle et complète une grammaire mais c’est au prix d’une complexité accrue.au prix d’une complexité accrue.

Un document XML-Schema respecte la syntaxe Un document XML-Schema respecte la syntaxe XML.XML.

Un document XML-Schema est généralement Un document XML-Schema est généralement plus volumineux et plus difficile à lire qu’une plus volumineux et plus difficile à lire qu’une DTD (pour un opérateur humain).DTD (pour un opérateur humain).

Page 45: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

45

Exemple de XML-XSD Exemple de XML-XSD

<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?><?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>

<cave xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <cave xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation='td2.xsd'>xsi:noNamespaceSchemaLocation='td2.xsd'>

<appellation id="01" nom="Saint Estèphe"> <appellation id="01" nom="Saint Estèphe">

<chateau id="0101"><chateau id="0101">

<nom> Chateau Bellevue</nom><nom> Chateau Bellevue</nom>

<adresse> 12 Rue du Pont</adresse><adresse> 12 Rue du Pont</adresse>

<téléphone> 0556124321</téléphone><téléphone> 0556124321</téléphone>

</chateau></chateau>

<chateau id="0102"><chateau id="0102">

<nom> Chateau Le Bernadot</nom><nom> Chateau Le Bernadot</nom>

<adresse> 21 Avenue du Cygne</adresse><adresse> 21 Avenue du Cygne</adresse>

<téléphone> 0556324231</téléphone><téléphone> 0556324231</téléphone>

</chateau></chateau>

</appellation></appellation>

</cave></cave>

Page 46: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

46

XSD XSD

<?xml version="1.0" encoding="ISO-8859-1"?><?xml version="1.0" encoding="ISO-8859-1"?>

<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'><xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'>

<xsd:element name="cave"><xsd:element name="cave">

<xsd:complexType><xsd:complexType>

<xsd:sequence><xsd:sequence>

<xsd:element ref="appellation" minOccurs='1' maxOccurs='unbounded'/><xsd:element ref="appellation" minOccurs='1' maxOccurs='unbounded'/>

</xsd:sequence></xsd:sequence>

</xsd:complexType></xsd:complexType>

</xsd:element></xsd:element>

<xsd:element name="appellation"><xsd:element name="appellation">

<xsd:complexType><xsd:complexType>

<xsd:sequence><xsd:sequence>

<xsd:element ref="chateau" minOccurs='0' maxOccurs='unbounded'/><xsd:element ref="chateau" minOccurs='0' maxOccurs='unbounded'/>

</xsd:sequence></xsd:sequence>

<xsd:attribute name="id" type="xsd:integer" use='required'/><xsd:attribute name="id" type="xsd:integer" use='required'/>

<xsd:attribute name="nom" type="xsd:string"/><xsd:attribute name="nom" type="xsd:string"/>

</xsd:complexType></xsd:complexType>

</xsd:element> </xsd:element>

Page 47: 1 Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) (XML, DTD, XML-Schema) Janvier 2009.

47

<xsd:element name="chateau"><xsd:element name="chateau">

<xsd:complexType><xsd:complexType>

<xsd:sequence><xsd:sequence>

<xsd:element ref="nom" minOccurs='1' maxOccurs='1'/><xsd:element ref="nom" minOccurs='1' maxOccurs='1'/>

<xsd:element ref="adresse"/><xsd:element ref="adresse"/>

<xsd:element ref="téléphone"/><xsd:element ref="téléphone"/>

</xsd:sequence></xsd:sequence>

<xsd:attribute name="id" type="xsd:integer" use='required'/><xsd:attribute name="id" type="xsd:integer" use='required'/>

</xsd:complexType></xsd:complexType>

</xsd:element></xsd:element>

<xsd:element name="nom" type="xsd:string"/><xsd:element name="nom" type="xsd:string"/>

<xsd:element name="adresse" type="xsd:string"/><xsd:element name="adresse" type="xsd:string"/>

<xsd:element name="téléphone" type="xsd:decimal"/><xsd:element name="téléphone" type="xsd:decimal"/>

</xsd:schema></xsd:schema>