87
Module « Les technologies du Web » Responsable : Abdelmajid DARGHAM Licence fondamentale SMI Semestre 5 Année universitaire 2008/2009

Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Module

« Les technologies du Web »

Responsable : Abdelmajid DARGHAM

Licence fondamentale SMI

Semestre 5

Année universitaire 2008/2009

Page 2: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Deuxième Partie :

XML, XPath & XSLT

Chapitre 4 : Langage XML

Page 3: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Sommaire

�Introduction à XML

�Documents XML

�DTD

�Espaces de noms

Page 4: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Introduction à XML� Limites du langage HTML :

� HTML est formé d’un ensemble prédéfini de balises : <html>, <body>, <p>, <img>, 0etc.

� La signification de chaque balise HTML est fixée par la norme.

� Le HTML mélange des balises à caractère sémantique avec d’autres à caractère présentation et de mise en page.

� Les liens HTML sont très simples.

Page 5: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Introduction à XML� Le langage XML :

� XML se réfère à eXtensible Markup Language.

� Les balises XML sont personnalisables : l’utilisateur défini à son goût ses propres balises.

� La signification d’une balise XML est laissée àson auteur.

� Le langage XML n’utilise que des balises sémantiques : pas de balises de mise en forme.

� XML est un méta-langage : il permet de créer d’autres langages de balisage.

Page 6: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Introduction à XML� Les atouts du langage XML :

� Extensibilité :

• Possibilité de définir des éléments spécifiques pour chaque composant identifiéd’une information structurée.

� Structure d’arbre :

• Les éléments sont organisés dans une structure arborescente.

� Données purement textuelles :

• XML ne contient que des éléments décrits sous un format textuel très simple.

Page 7: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Introduction à XML� Les atouts du langage XML :

� Structures types modulaires et réutilisables :

• Grâce au DTD (Document Type Definition), XML permet de définir de telles structures types des éléments.

� Contrôle de validité :

• Possibilité d’analyse lexicale, syntaxique et même sémantique des documents XML se conformant à une structure type.

� Standard d’échange de documents sur le Net

Page 8: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Introduction à XML�Quelques applications XML :

� MathML : • Langage XML qui permet de représenter des

expressions mathématiques.� SVG (Scalable Vector Graphics) :

• Dérivé de XML permettant de créer et de visualiser des graphiques structurés.

� SMIL (Synchronised Multimedia IntegrationLanguage) : • Langage XML permettant de représenter et

d’échanger des documents multimédias dynamiques synchrones.

Page 9: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Introduction à XML�Quelques applications XML :

� RDF (Ressource Description Framework) :

• Langage XML qui permet de définir des relations très complexes entre des documents ou des données.

� XHTML (eXtensible HTML) :

• Est une redéfinition de HTML sous forme de dialecte XML.

Page 10: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Introduction à XML�Quelques technologies liées à XML :

� XPath :

• Langage de description des chemins dans un arbre XML.

� XSLT :

• Langage de transformation des documents XML vers d’autres formats (HTML, PDF, Word, Excel, 0etc).

� XPointer :

• Langage pour désigner un fragment de document XML.

Page 11: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Introduction à XML�Quelques technologies liées à XML :

� XLink : • Langage qui permet de créer des liens entre

fichiers XML ou portions de fichiers XML (grâce à XPointer).

� XQuery : • Langage qui permet d'extraire des

informations d'un document XML. Il permet également d'effectuer des calculs complexes à partir des informations extraites et de reconstruire de nouveaux documents ou fragments XML.

Page 12: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML�Classes des documents XML :

� Les documents bien formés : • Un document XML est « bien formé » s’il

obéit aux règles syntaxiques du langage XML.

� Les documents valides : • Un document XML est « valide » s’il est

d’abord bien formé, et de plus obéit à une structure type définie explicitement dans une DTD.

Page 13: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML�Structure générale d’un document XML :

� Un prologue : • Facultatif, mais conseillé.

� Un arbre d’éléments : • Contenu du document XML.

� Commentaires : • Facultatifs.

� Instructions de traitement : • Facultatifs.

Page 14: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Le prologue :

� La déclaration minimale : <?xml version = '1.0' ?>

� Autres attributs : <?xml version = '1.0'

encoding = 'UTF-8'

standalone = 'yes' ?>

� encoding : spécifie le jeu de caractères utilisés pour coder les données en XML. Par défaut, c’est UTF-8.

� standalone : spécifie si un DTD externe est requis pour le document XML (sinon, 'yes').

Page 15: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les éléments :

� La construction syntaxique de base d'un document XML est un élément.

� Un élément dans un document XML est délimitépar une balise de début et une balise de fin.

� Syntaxes de définition d’un élément XML :•<tagName></tagName>

•<tagName/>

•<tagName>children</tagName>

Page 16: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les éléments :

� Exemple :<Personne>

<Nom>Munier</Nom>

<Prenom>Alix</Prenom>

<Age>45</Age>

</Personne>

Page 17: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les éléments :

� Règles :• Le nom de la balise d’un élément doit

commencer par une lettre.• Il ne contient que des lettres, des chiffres et

les caractères « - », « _ » ou « . ».� Les sections CDATA :

• Permettent d'indiquer à l'analyseur qu'il n'y a pas de balisage dans les caractères contenus dans ces sections :

<![CDATA[Ceci est un texte arbitraire <avec> un ]]>

Page 18: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les éléments vides :

� Exemples :<personne>

<nom>Munier</nom>

<prenom>Alix</prenom>

<age>45</age>

<adresse></adresse>

<situation marie = "oui"/>

</personne>

Page 19: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les attributs d’éléments :

� Les éléments XML peuvent avoir des attributs.� Un attribut doit être indiqué dans une balise de

début.� Il doit aussi avoir une valeur donnée entre " " ou

bien entre ' '.� Exemple :

<personne nationnalite = "MA">

<nom initiale = 'A.'>Saad</nom>

<age>20</age>

</personne>

Page 20: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML�Règles concernant les documents XML :

� Tout élément fils est complètement inclus dans son père : impossible de recouvrer des éléments. Ainsi, le document suivant n’est pas bien formé :

<para>Voici un petit paragraphe.<note> remarque concernant</para><para>Ceci est un autre petit paragraphe</para></note>

Page 21: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML�Règles concernant les documents XML :

� Il existe dans un document un et un seul élément père qui contient tous les autres, c’est l’élément racine. Ainsi, le document suivant n’est pas bien formé :

<voiture couleur = 'rouge'>

<marque>Peugeot 205</marque>

</voiture>

<voiture couleur = 'bleu'>

<marque>Renault 19</marque>

</voiture>

Page 22: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML�Un exercice corrigé :

� Créer un document XML pour marquer les valeurs nutritives des tomates.

� Voici les informations à transformer en fichier XML :

Tomate confite (à l’huile) : Lipides (33%), Glucides (55%), Protéines (12%).

Tomate rouge (conserve) : Lipides (2%), Glucides (87%), Protéines (11%).

Tomate verte crue : Lipide (3%), Glucides (78%), Protéines (18%).

Page 23: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML�Une solution :

<?xml version = '1.0' ?><tomate><confite>

<lipides>33%</lipides><glucides>55%</glucides><proteines>12%</proteines>

</confite><rouge>

<lipides>2%</lipides><glucides>87%</glucides><proteines>11%</proteines>

</rouge>

Page 24: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML�Une solution :

<verte><lipides>3%</lipides><glucides>78%</glucides><proteines>18%</proteines>

</verte></tomate>

Page 25: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML�Affichage du document dans un navigateur :

Page 26: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les commentaires dans XML :

� Il est possible de définir des commentaires dans un document XML.

� Un commentaire s’insère dans une déclaration de commentaire selon la syntaxe suivante :<!-- Ceci est un commentaire -->

� Les instructions de traitement :� Les instructions de traitement dans un

document XML précisent les orientations vers les applications qui sont censées traiter le document.

� La sémantique associée à ces instructions sont spécifiques aux applications.

Page 27: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les instructions de traitement :

� La syntaxe d'une instruction de traitement est la suivante :<?cible "paramètres"?>

� Dans une instruction de traitement :• « cible » précise l'application cible qui est

attendue pour le traitement de l'instruction.• « paramètres » précisent les arguments de

l’instruction de traitement.

Page 28: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les instructions de traitement :

� Exemple : <?xml-stylesheet href="style.css" type="text/css"?>

� Dans cette instruction de traitement :• L’application cible est le navigateur.• Elle indique au navigateur qu’il faut appliquer

le format défini dans la feuille de style nommé « style.css » au document qui contient cette instruction.

• Cette feuille de style étant elle-même une ressource de type « text/css ».

Page 29: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML�Attribut d’indication de langue :

� Pour faciliter certains traitements linguistiques des documents et leur indexation, il est utile d’y inclure une indication de la langue naturelle qui est employée : c’est l’objectif de l’attribut prédéfini xml:lang.

� Exemples :<couleur xml:lang = 'fr'>rouge</couleur><couleur xml:lang = 'ar'>أصفر</couleur><couleur xml:lang = 'en'>black</couleur>

Page 30: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML�Contenu d’un élément :

� Un élément peut contenir :

• D’autres éléments.

• Des données.

• Des références à des entités.

• Des sections littérales (CDATA).

• Des instructions de traitement.

� Il peut également être vide.

� Un élément peut aussi avoir un contenu récursif, comme dans l’exemple suivant :

Page 31: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML�Contenu récursif : un exemple

<vecteur>

<composant>

<vecteur>

<composant>1</composant>

<composant>2</composant>

</vecteur>

<composant>3</composant>

<composant>4</composant>

</vecteur>

((1, 2), 3,4)

Page 32: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les données :

� Les données contenues dans un élément sont constituées par un flot de caractères.

� Tous les caractères sont autorisés, à l’exception des caractères suivants :

• Le « et commercial » : &.

• Le « plus petit » : <.

Page 33: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les espaces :

� Les caractères blancs, de tabulation, les retours à la ligne et les lignes vierges constituent les espaces.

� Ils sont en principe transmis intacts par un parseur XML à une application.

� C’est l’application qui détermine la nature des traitements des espaces.

� En règle générale, tous ces espaces sont équivalents pour un processeur XML.

Page 34: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les espaces :

� L’attribut xml:space :

• Il permet d’indiquer à l’application si le contenu d’un élément doit être traité :

–En préservant les espaces figurant dans le document source (xml:space = 'preserve').

–Ou si l’application peut appliquer son traitement par défaut (xml:space = 'default').

Page 35: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les références aux entités prédéfinies :

� Ce sont les caractères qui servent au balisage XML :•&lt; pour le caractère <.

•&gt; pour le caractère >.

•&amp; pour le caractère &.

•&apos; pour le caractère '.

•&quot; pour le caractère ".

Page 36: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

Documents XML� Les références à des caractères spéciaux :

� Une référence à un caractère spécial est préfixée par « &#x », suivi du code hexadécimal du caractère, suivi d’un point-virgule.

� Exemple :• Soit l’équation : ∀ x ≥ 0, f(y) < z.• Comment l’écrire en XML ?• Réponse : <equation>

&#x2200; x &#x2267; 0, f(y) &#x003c; z</equation>

Page 37: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Notion de DTD :

� Une DTD (Document Type Definition) définit la structure logique d'un document XML.

� Si le contenu d'un document XML est conforme à la structure imposée par sa DTD, on dit qu’un tel document est valide.

� Une DTD se présente comme une grammairedont les phrases sont les documents XML.

Page 38: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des DTD :

� Une DTD peut être déclarée à l’intérieur ou àl’extérieur d’un document XML.

� Déclaration interne :<!DOCTYPE racine [déclarations]>

� Déclaration externe :<!DOCTYPE racine SYSTEM "file.dtd">

• Le nom de la DTD (racine) doit être identique au nom de l’élément racine dans le document XML.

Page 39: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Exemple d’une déclaration interne de DTD :

<?xml version = "1.0"?>

<!DOCTYPE note [

<!ELEMENT note (a,de,en-tete,mes)>

<!ELEMENT a (#PCDATA)>

<!ELEMENT de (#PCDATA)>

<!ELEMENT en-tete (#PCDATA)>

<!ELEMENT mes (#PCDATA)>

]>

<note>

<a>Bob</a>

Page 40: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Exemple d’une déclaration interne de DTD :

<de>Taylor</de>

<en-tete>Rappel</en-tete>

<mes>RDV à 8h, ce soir</mes>

</note>

Page 41: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Exemple d’une déclaration externe de DTD :

<!-- note.dtd -->

<!ELEMENT note (a,de,entete,mes)>

<!ELEMENT a (#PCDATA)>

<!ELEMENT de (#PCDATA)>

<!ELEMENT entete (#PCDATA)>

<!ELEMENT mes (#PCDATA)>

<!-- note.xml -->

<?xml version = "1.0"?>

<!DOCTYPE note SYSTEM "note.dtd">

<note>

Page 42: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Exemple d’une déclaration externe de DTD :

<a>Bob</a>

<de>Taylor</de>

<entete>Rappel</entete>

<mes>RDV à 8h, ce soir</mes>

</note>

Page 43: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD� Les objets d’une DTD :

� Les éléments (balises XML)

� Les attributs

� Les entités (caractères spéciaux)

� Les flots de caractères (PCDATA signifie Parsed Character DATA) : contenu textuel qu’on trouve entre la balise d’ouverture et la balise de fermeture d’un élément. Ce contenu sera analysé par le parseur.

� Les sections CDATA (CDATA signifie CharacterDATA) : contenu textuel ignoré par le parseur.

Page 44: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Dans une DTD, les éléments sont déclarés en utilisant le mot clé ELEMENT.

� Syntaxe générale :<!ELEMENT nom Type_Elément>

� Types des éléments :

• Vide;

• Texte;

• Quelconque;

• Liste d’éléments;

• Liste de choix d’éléments.

Page 45: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Élément vide :

• Un élément vide ne présente aucun contenu (ni un texte, ni autre chose).

• Cependant, un élément vide peut avoir 0, un ou plusieurs attributs.

� Exemple (DTD) :<!ELEMENT vide EMPTY>

� Exemples (XML) valides : •<vide/>

•<vide></vide>

Page 46: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Éléments avec contenu textuel :

• Cet élément est le plus fréquent, puisque c'est celui qui contient du texte.

• Il se déclare selon la syntaxe suivante :<!ELEMENT nom (#PCDATA)>

� Exemple :<!ELEMENT date (#PCDATA)>

� Exemple XML (valide) : <date>10-01-2009</date>

Page 47: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Éléments avec contenu quelconque :• Un élément quelconque est un élément qui

peut contenir tout autre élément défini dans la DTD, aussi bien qu'être vide ou contenir du texte.

• Les éléments enfants éventuels peuvent apparaître dans n'importe quel ordre, et en quantité non définie.

• Il est préférable de ne pas utiliser trop souvent ce type de déclaration, car on perd les avantages qu'offre la rédaction d'une DTD, et qui sont, à savoir, fixer des contraintes précises sur la structure du document XML qui lui est associé.

Page 48: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Éléments avec contenu quelconque :• Le mot clé utilisé pour la déclaration de ce

type d'élément est ANY :<!ELEMENT nom ANY>

� Exemple :<!ELEMENT tout ANY>

� Exemples XML (valides) : <tout>un texte</tout><tout></tout><tout/><tout>un<x>contre</x></tout>

Page 49: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Séquence d’éléments :

• Une séquence d'éléments est une liste ordonnée des éléments qui doivent apparaître en tant qu'éléments enfants de l'élément que l'on est en train de définir.

• Ce dernier ne pourra contenir aucun autre élément que ceux figurant dans la séquence.

• Cette liste est composée d'éléments séparéspar des virgules et est placée entre parenthèses.

Page 50: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Séquence d’éléments :

• Chaque élément enfant doit de plus être déclaré par ailleurs dans la DTD (avant ou après la définition de la liste, peu importe).

• Dans le fichier XML, ils doivent apparaître dans l'ordre de la séquence.

• Un élément enfant peut sans aucun problème avoir des enfants.

� Syntaxe de déclaration :<!ELEMENT nom (fils)>

<!ELEMENT nom (fils1, fils2, ...)>

Page 51: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple :<!ELEMENT note (a,de,en-tete,mes)>

� Exemple XML (valide) : <note>

<a>. . . </a>

<de>. . . </de>

<en-tete>. . .</en-tete>

<mes>. . . </mes>

</note>

Page 52: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple XML (invalide) : <note>

<a>. . . </a>

<de>. . . </de>

<!-- en-tête manquant -->

<mes>. . . </mes>

</note>

Page 53: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple XML (invalide) : <note>

<a>. . . </a>

<en-tete>. . . </en-tete>

<mes>. . . </mes>

<de>. . . </de>

<!-- l’ordre est non respecté -->

</note>

Page 54: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Liste de choix d’éléments :

• Une liste de choix d'éléments permet de choisir un élément parmi plusieurs éléments possibles.

• L'utilisation précise dépend des indicateurs d'occurrence.

• De même que pour la séquence, les éléments enfants doivent être déclarés dans la DTD.

• Cette liste est composée d'éléments séparés par le caractère « | ».

Page 55: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Syntaxe de déclaration d’une liste de choix d’éléments :<!ELEMENT nom (fils1|...|filsN)>

� Exemple :<!ELEMENT contact (tél | E-mail)>

� Exemple XML (valide) :<contact>

<tél>062-255-958</tél>

</contact>

Page 56: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple XML (valide) :<contact>

<E-mail>[email protected]</E-mail>

</contact>

� Exemple XML (invalide) :<contact>

<tél>062-123-456</tél>

<E-mail>[email protected]</E-mail>

</contact>

Page 57: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD� Indicateurs du nombre d’occurrences :

� Lors de la déclaration de liste ou de choix d'éléments, à chaque élément enfant peut être attribuée une indication du nombre d'occurrences.

� Ces indicateurs sont : •+ : l’enfant doit apparaître au moins une fois.

•* : l’enfant peut apparaître autant de fois que l’on veut (et même, ne pas apparaître).

•? : l’enfant doit apparaître au maximum une fois (ou ne pas apparaître du tout).

Page 58: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD� Indicateurs du nombre d’occurrences :

� Si aucun de ces trois indicateurs n’est présent, cela signifie que l’enfant doit apparaître exactement une fois.

� Syntaxes d’emploi des indicateurs : <!ELEMENT nom (enfant+)>

<!ELEMENT nom (enfant*)>

<!ELEMENT nom (enfant?)>

<!ELEMENT nom (enfant)>

Page 59: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple : <!ELEMENT personne (nom, prénom+, date, age?, diplôme*)>

<!ELEMENT nom (#PCDATA)>

<!ELEMENT prénom (#PCDATA)>

<!ELEMENT date (#PCDATA)>

<!ELEMENT age (#PCDATA)>

<!ELEMENT diplôme (#PCDATA)>

Page 60: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple XML (valide) : <personne>

<nom>Bob</nom>

<prénom>Taylor</prénom>

<date>01-01-1970</date>

<age>39</age>

<diplôme>licence</diplôme>

</personne>

Page 61: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple XML (valide) : <personne>

<nom>Bob</nom>

<prénom>Taylor</prénom>

<prénom>Taylor, le petit</prénom>

<date>01-01-1970</date>

<age>39</age>

<diplôme>licence</diplôme>

</personne>

Page 62: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple XML (valide) : <personne>

<nom>Bob</nom>

<prénom>Taylor</prénom>

<prénom>Taylor, le petit</prénom>

<date>01-01-1970</date>

<diplôme>licence</diplôme>

<diplôme>phd thesis</diplôme>

</personne>

Page 63: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple XML (invalide) : <personne>

<nom>Bob</nom>

<date>01-01-1970</date>

<diplôme>licence</diplôme>

<diplôme>phd thesis</diplôme>

</personne>

Page 64: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Indicateur du nombre d’occurrence globale :

• Cet indicateur porte sur toute la liste des éléments, et non pas sur l’un des éléments.

� Syntaxes :<!ELEMENT nom (enfants)+>

<!ELEMENT nom (enfants)*>

<!ELEMENT nom (enfants)?>

<!ELEMENT nom (enfants)>

Page 65: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple :<!ELEMENT contact (nom, tél)>

� Exemple XML (valide) :

<contact>

<nom>Bob</nom>

<tél>012-345-678</tél>

</contact>

Page 66: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple :<!ELEMENT contact (nom, tél)?>

� Exemple XML (valide) :

<contact>

</contact>

� Exemple XML (valide) :<contact>

<nom>Bob</nom>

<tél>012-345-678</tél>

</contact>

Page 67: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple :<!ELEMENT contact (nom, tél)+>

� Exemple XML (invalide) :

<contact>

</contact>

� Exemple XML (valide) :<contact>

<nom>Bob</nom>

<tél>012-345-678</tél>

</contact>

Page 68: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple :<!ELEMENT contact (nom, tél)*>

� Exemple XML (valide) :

<contact>

</contact>

� Exemple XML (valide) :<contact>

<nom>Bob</nom>

<tél>012-345-678</tél>

</contact>

Page 69: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Élément à contenu mixte :

• Un élément à contenu mixte peut contenir aussi bien du texte que des éléments enfants.

• Il se présente comme une liste de choix, avec des indicateurs du nombre d'occurrence bien choisis.

• Le texte contenu peut se trouver à n'importe quel endroit dans l'élément, et peut être une section CDATA.

Page 70: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des éléments :

� Exemple d’un élément à contenu mixte :<!ELEMENT citation (#PCDATA | auteur)*>

� Exemple XML (valide) :<citation>

<auteur>Inconnu</auteur>Rien ne se perds, tous se transforme avec XSLT.

</citation>

Page 71: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Modèles de contenu de base :

Page 72: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Marqueurs du nombre d’occurrences :

Page 73: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des attributs :

� Avec les DTD, il est également possible de déclarer et attacher à un élément donné un ou plusieurs d’attributs.

� Chaque attribut se déclare séparément.

� Chaque attribut défini dans la liste possède un nom et un type.

� On peut aussi lui donner une valeur par défaut, ou bien le spécifier obligatoire.

� Le mot clé de cette déclaration est ATTLIST.

Page 74: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des attributs :

� Syntaxe de déclaration d’un attribut : <!ATTLIST nom-élément nom-attributtype-attribut valeur-par-défaut>

� Exemple :<!ATTLIST paiement type CDATA"cache">

� Exemple XML :<paiement type = "chèque"/>

Page 75: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Types des attributs :

� CDATA : chaîne de caractères arbitraires.

� ID : un nom unique dans le document (joue le rôle d’identifiant).

� IDREF : une référence à une valeur de type IDdans le document.

� IDREFS : une liste de valeurs séparées par des espaces. Chaque valeur est de type IDREF.

� ENTITY : le nom d’une entité déclarée dans le DTD.

Page 76: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Types des attributs :

� ENTITIES : une liste de valeurs séparées par des espaces. Ces valeurs sont de type ENTITY.

� NMTOKEN : un nom XML valide.

� NMTOKENS : une liste de valeurs séparées par des espaces et de type NMTOKEN.

Page 77: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Valeurs par défaut (après la déclaration du type) :

� "Valeur" : la valeur par défaut de l’attribut.

� #REQUIRED : l’attribut est requis (obligatoire).

� #IMPLIED : l’attribut est facultatif (non obligatoire).

� #FIXED "Valeur" : la valeur de l’attribut est fixée (constante).

Page 78: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des attributs :

� Exemple (valeur par défaut) :• DTD :<!ELEMENT carre EMPTY>

<!ATTLIST carre largeur CDATA "0">

• XML (valide) :<carre largeur = "100"/>

• Dans cet exemple, l’élément "carre" est un élément vide avec un attribut "largeur" de type CDATA.

• Si aucune largeur n’est spécifiée, la valeur par défaut 0 sera la valeur de cet attribut.

Page 79: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des attributs :

� Exemple (valeur requise) :• DTD :<!ATTLIST personne cin CDATA#REQUIRED>

• XML (valide) :<personne cin = "BF125024"/>

• XML (invalide) :<personne/>

• #REQUIRED s’utilise si aucune valeur par défaut n’est spécifiée, et si l’on veut forcer l’attribut d’être présent.

Page 80: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des attributs :

� Exemple (valeur optionnelle) :• DTD :<!ATTLIST contact fax CDATA#IMPLIED>

• XML (valides) :<contact fax = "120-454-187"/>

<contact/>

• #IMPLIED s’utilise si aucune valeur par défaut n’est spécifiée, et si l’on ne veut pas forcer l’attribut d’être présent.

Page 81: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des attributs :

� Exemple (valeur fixée) :• DTD :<!ATTLIST expéditeur compagnieCDATA #FIXED "Epson">

• XML (valide) :<expéditeur compagnie = "Epson"/>

• XML (invalide) :<expéditeur compagnie = "Xerox"/>

• #FIXED s’utilise lorsqu’on veut qu’un attribut ait une valeur fixe, sans permettre à l'auteur de la changer. Si un utilisateur inclut une autre valeur, le parseur XML retournera une erreur.

Page 82: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD

�Déclaration des attributs :� Exemple (valeur liste énumérée) :

• DTD :<!ATTLIST paiement type (chèque|cache) "cache">

• XML (valides) :<paiement type = "cache"/>

<paiement type = "chèque"/>

• Une liste énumérée s’utilise lorsqu’on veut qu’un attribut ait une valeur parmi les valeurs indiquées dans la liste.

Page 83: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Un exemple :

<!-- emp.dtd -->

<!ELEMENT employés (employé*)>

<!ELEMENT employé (#PCDATA)>

<!ATTLIST employé

nom CDATA #REQUIRED

id ID #REQUIRED

chef IDREF #IMPLIED

gere IDREFS #IMPLIED

>

Page 84: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Un exemple :

<!-- emp.xml --><!DOCTYPE employés SYSTEM "emp.dtd"><employés><employé nom="Billy" id="e100" gere="e101 e102"/>

<employé nom="Jim" id="e101" chef="e100"/>

<employé nom="Sarah" id="e102" chef="e100" gere="e103"/>

<employé nom="Nak" id="e103" chef="e102"/>

<employé nom="Pan" id="e104"/></employés>

Page 85: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Types des attributs :

� Liste énumérée :

• On peut parfois désirer limiter la liste de valeurs possibles pour un attribut.

• On le définit alors comme étant de type liste énuméré.

• Donner une autre valeur dans le fichier XML, qui n’est pas dans la liste énumérée,provoquera une erreur.

Page 86: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Types des attributs :

� Exemple de liste énumérée :<!ELEMENT img EMPTY>

<!ATTLIST img format (GIF | JPEG | PNG) "PNG">

• Cet exemple déclare un attribut format d'un élément img. La valeur de cet attribut peut être soit PNG, soit GIF ou bien JPEG.

• Si aucune valeur n'est spécifiée à cet attribut, c'est la valeur par défaut qui le sera, ici PNG.

• On notera l'absence de guillemets dans la liste des valeurs possibles.

Page 87: Module «Les technologies du Web · Introduction àXML Les atouts du langage XML : Structures types modulaires et réutilisables : •Grâce au DTD (Document Type Definition ), XML

DTD�Déclaration des attributs :

� Utilisation de liste lors de la déclaration des attributs d’un élément :

• Il est possible de « factoriser » le nom de l'élément lorsqu’on déclare ses attributs.

� Exemple :<!ELEMENT sportif (...)>

<!ATTLIST sportif

longueur CDATA #REQUIRED

poids CDATA #REQUIRED

>