document type definition (dtd)

35
Document Type Definition (DTD) lan .1 Introduction .2 Déclaration de Document Type .3 Déclaration d’élément Type 2.3.1 Séquences, Choix, indicateurs d’Occurrence 2.3.2 EMPTY, Contenu mixte et ANY .4 Déclaration d’attributs 2.4.1 Attributs par Défaut (#REQUIRED, #IMPLIED, #FIXED) .5 Types d’Attribut 2.5.1 Type d’Attribut à jeton (ID, IDREF, ENTITY, NMTOKEN) 2.5.2 Type d’Attribut énuméré .6 Sections Conditionnelles .7 les espaces .8 Etude de cas: Ecrire une DTD pour l’application d’emploi du t

Upload: marged

Post on 14-Jan-2016

61 views

Category:

Documents


0 download

DESCRIPTION

Document Type Definition (DTD). Plan 2.1 Introduction 2.2Déclaration de Document Type 2.3Déclaration d’élément Type 2.3.1Séquences, Choix, indicateurs d’Occurrence 2.3.2 EMPTY , Contenu mixte et ANY 2.4Déclaration d’attributs - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Document Type Definition (DTD)

Document Type Definition (DTD)

Plan2.1 Introduction2.2 Déclaration de Document Type 2.3 Déclaration d’élément Type

2.3.1 Séquences, Choix, indicateurs d’Occurrence2.3.2 EMPTY, Contenu mixte et ANY

2.4 Déclaration d’attributs

2.4.1 Attributs par Défaut (#REQUIRED, #IMPLIED, #FIXED)2.5 Types d’Attribut

2.5.1 Type d’Attribut à jeton (ID, IDREF, ENTITY, NMTOKEN)2.5.2 Type d’Attribut énuméré

2.6 Sections Conditionnelles 2.7 les espaces2.8 Etude de cas: Ecrire une DTD pour l’application d’emploi du temps

Page 2: Document Type Definition (DTD)

Validation du document• vérification des règles de syntaxe

– pas de chevauchement– les guillemets pour les valeurs des attributs– différence entre majuscules et minuscules– une balise ouverte est toujours fermée

• vérification de la cohérence des données– même interprétation pour un seul élément– nécessite la définition de chaque élement: DTD

• validator– en ligne : http://www.w3schools.com/xml/xml_validator.asp– intégrés à l'outil: Oxygene

Page 3: Document Type Definition (DTD)

Fig. 2.1 document XML déclarant sa DTD associée.

1 <?xml version = "1.0"?>

2

3 <!-- Fig. 6.1: intro.xml -->

4 <!-- Utilisation d’un sous-ensemble externe -->

5

6 <!DOCTYPE monMessage SYSTEM "intro.dtd">

7

8 <monMessage>

9 <message>Bienvenue dans le monde XML!</message>

10 </monMessage>

Page 4: Document Type Definition (DTD)

Fig. 2.2 DTD externe

1 <!-- Fig. 6.2: intro.dtd -->

2 <!-- déclarations externes -->

3

4 <!ELEMENT monMessage ( message )>

5 <!ELEMENT message ( #PCDATA )>

Page 5: Document Type Definition (DTD)
Page 6: Document Type Definition (DTD)
Page 7: Document Type Definition (DTD)

Fig. 2.3 document XML Non valide

1 <?xml version = "1.0"?>

2

3 <!-- Fig. 6.3 : intro-invalid.xml -->

4 <!-- introduction simple a XML -->

5

6 <!DOCTYPE monMessage SYSTEM "intro.dtd">

7

8 <!-- element racine sans element fils -->

9 <monMessage>

10 </monMessage>

Page 8: Document Type Definition (DTD)
Page 9: Document Type Definition (DTD)

Fig. 2.4 indicateurs d’Occurrence

indicateur d ’Occurrence Description

Signe plus ( + ) Une occurrence ou plus

étoile ( * ) 0 occurence ou plus (élément optionnel)

Point d ’interrogation ( ? ) 0 ou 1 occurence

Page 10: Document Type Definition (DTD)

Fig. 2.5

Exemple d’élément au contenu

mixte

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

2

3 <!-- Fig. 6.5 : mixed.xml -->

4 <!-- element au contenu mixte -->

5

6 <!DOCTYPE format [

7 <!ELEMENT format ( #PCDATA | bold | italic )*>

8 <!ELEMENT bold ( #PCDATA )>

9 <!ELEMENT italic ( #PCDATA )>

10 ]>

11

12 <format>

13 C’est une simple phrase formatee.

14 <bold> j’essaie le gras.</bold>

15 <italic>j’essaie l’italic.</italic>

16 et maintenant?

17 </format>

Remarque: un document XML est standalone si il ne fait pas référence à une DTD externe

Page 11: Document Type Definition (DTD)
Page 12: Document Type Definition (DTD)

Fig. 2.6 mauvaise syntaxe d’un élément au contenu mixte.

Page 13: Document Type Definition (DTD)

Fig. 2.7déclaration d’attribut

1 <?xml version = "1.0"?>

2

3 <!-- Fig. 6.7: intro2.xml -->

4 <!-- Declaration d’attributs -->

5

6 <!DOCTYPE monMessage [

7 <!ELEMENT monMessage ( message )>

8 <!ELEMENT message ( #PCDATA )>

9 <!ATTLIST message id CDATA #REQUIRED>

10 ]>

11

12 <monMessage>

13

14 <message id = "445">

15 Bienvenue dans le monde XML!

16 </message>

17

18 </monMessage>

Page 14: Document Type Definition (DTD)
Page 15: Document Type Definition (DTD)

Fig. 2.8document

XML document avec des attributs ID et IDREF.

1 <?xml version = "1.0"?>

2

3 <!-- Fig. 6.8: IDExample.xml -->4 <!-- Exemple d’attributs ID et IDREF -->

5

6 <!DOCTYPE librairie [

7 <!ELEMENT librairie ( expedition+, book+ )>

8 <!ELEMENT expedition ( duree )>

9 <!ATTLIST expedition expID ID #REQUIRED>

10 <!ELEMENT livre ( #PCDATA )>

11 <!ATTLIST livre expediepar IDREF #IMPLIED>

12 <!ELEMENT duree ( #PCDATA )>

13 ]>

14

15 <librairie>

16 <expedition expID = "s1">

17 <duree>2 a 4 jours</duree>

18 </expedition>

19

Page 16: Document Type Definition (DTD)

Fig. 2.8document

XML document avec des

attributs ID et IDREF. (Partie 2)

20 <expedition expID = "s2">

21 <duree>1 jour</duree>

22 </expedition>

23

24 <livre expediepar = "s2">

25 Java How to Program 3rd edition.

26 </livre>

27

28 <livre expediepar = "s2">

29 C How to Program 3rd edition.

30 </livre>

31

32 <livre expediepar = "s1">

33 C++ How to Program 3rd edition.

34 </livre>

35 </librairie>

Page 17: Document Type Definition (DTD)
Page 18: Document Type Definition (DTD)

Fig. 2.9 Erreur affichée par XML Validator lorsqu’une ID invalide

est referencée.

Page 19: Document Type Definition (DTD)

Fig. 2.10

document XML

contenant un attribut

de type ENTITY.

1 <?xml version = "1.0"?>

2

3 <!-- Fig. 6.10: entityExample.xml -->

4 <!-- entité et attribut de type entité -->

5

6 <!DOCTYPE database [

7 <!NOTATION html SYSTEM "iexplorer">

8 <!ENTITY ville SYSTEM "tour.html" NDATA html>

9 <!ELEMENT base ( compagnie+ )>

10 <!ELEMENT compagnie ( nom )>

11 <!ATTLIST compagnie tour ENTITY #REQUIRED>

12 <!ELEMENT nom ( #PCDATA )>

13 ]>

14

15 <base>

16 <compagnie tour = "ville">

17 <nom>iut strasbourg sud.</nom>

18 </compagnie>

19 </base>

Page 20: Document Type Definition (DTD)
Page 21: Document Type Definition (DTD)

Fig. 2.11 Erreur générée par XML Validator lorsqu’une DTD contient une

référence à une entité non définie

Page 22: Document Type Definition (DTD)

Fig. 2.12

section Conditionnelle dans une DTD.

1 <!-- Fig. 6.12: conditional.dtd -->

2 <!-- exemple de DTD avec section conditionnelle -->

3

4 <!ENTITY % rejeter "IGNORE">

5 <!ENTITY % accepter "INCLUDE">

6

7 <![ %accepter; [

8 <!ELEMENT message ( approuve, signature )>

9 ]]>

10

11 <![ %rejeter; [

12 <!ELEMENT message ( approuve, raison, signature )>

13 ]]>

14

15 <!ELEMENT approove EMPTY>

16 <!ATTLIST approuve flag ( true | false ) "false">

17

18 <!ELEMENT raison ( #PCDATA )>

19 <!ELEMENT signature ( #PCDATA )>

Page 23: Document Type Definition (DTD)

Fig. 2.13 document XML conforme à la conditional.dtd.

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

2

3 <!-- Fig. 6.13: conditional.xml -->

4 <!-- utiliser des sections conditionnelles -->

5

6 <!DOCTYPE message SYSTEM "conditional.dtd">

7

8 <message>

9 <approuve flag = "true"/>

10 <signature>Chairman</signature>

11 </message>

Page 24: Document Type Definition (DTD)
Page 25: Document Type Definition (DTD)

Fig. 2.14

traitement des

espaces dans un

document XML

1 <?xml version = "1.0"?>23 <!-- Fig. 6.14 : whitespace.xml -->4 <!-- analyse des espaces -->56 <!DOCTYPE whitespace [7 <!ELEMENT whitespace ( aCDATA,8 aID, aNMTOKEN, aEnumeration, aMixed )>910 <!ELEMENT aCDATA EMPTY>11 <!ATTLIST aCDATA cdata CDATA #REQUIRED>1213 <!ELEMENT aID EMPTY>14 <!ATTLIST aID id ID #REQUIRED>1516 <!ELEMENT aNMTOKEN EMPTY>17 <!ATTLIST aNMTOKEN nmtoken NMTOKEN #REQUIRED>1819 <!ELEMENT aEnumeration EMPTY>20 <!ATTLIST aEnumeration enumeration ( true | false )21 #REQUIRED>2223 <!ELEMENT aMixed ( #PCDATA | aCDATA )*>24 ]>25

Page 26: Document Type Definition (DTD)

Fig. 2.14 traitement des espaces dans un document XML (Partie

2)

26 <whitespace>

27

28 <aCDATA cdata = " cdata simple "/>

29

30 <aID id = " i20"/>

31

32 <aNMTOKEN nmtoken = " bonjour"/>

33

34 <aEnumeration enumeration = " true"/>

35

36 <aMixed>

37 voici un texte.

38 <aCDATA cdata = " cdata simple"/>

39 encore un texte.

40 </aMixed>

41

42 </whitespace>

Page 27: Document Type Definition (DTD)

Affichage de Fig. 2.14

>java Tree yeswhitespace.xmlURL: file:C:/Examplesps/Files/deleted/ch09/Tree/whitespace.xml[ document root ]+-[ element : whitespace ] +-[ ignorable ] +-[ ignorable ] +-[ ignorable ] +-[ element : aCDATA ] +-[ attribute : cdata ]" cdata simple “ +-[ ignorable ] +-[ ignorable ] +-[ ignorable ]+-[ element : aID ] +-[ attribute : id ] "i20“ +-[ ignorable ] +-[ ignorable ] +-[ ignorable ] +-[ element : aNMTOKEN ] +-[ attribute : nmtoken ] ”bonjour“ +-[ ignorable ] +-[ ignorable ] +-[ ignorable ] +-[ element : aEnumeration ] +-[ attribute : enumeration ] "true“ +-[ ignorable ] +-[ ignorable ] +-[ ignorable ] +-[ element : aMixed ] +-[ text ] ““ +-[ text ] " Voici un text.“ +-[ text ] “

Page 28: Document Type Definition (DTD)

Affichage de Fig. 2.14

“ +-[ text ] " “ +-[ element : aCDATA ] +-[ attribute : cdata ] " cdata simple“ +-[ text ] ““ +-[ text ] " encore un texte.“ +-[ text ] ““ +-[ text ] " “ +-[ ignorable ] +-[ ignorable ][ document end ]

Page 29: Document Type Definition (DTD)

<?xml version="1.0" encoding="UTF-8" ?>   <!DOCTYPE segments SYSTEM="http://www.w3.org/xces.dtd"> - <segments>- <seg lang="fr">- <s id="ttlfr.1">  <w lemma="le" ana="Da-ms" chunk="Np#1">Le</w>   <w lemma="secrétaire" ana="Ncms" chunk="Np#1">secrétaire</w>   <w lemma="de" ana="Spd" chunk="Pp#1">d'</w>   <w lemma="etat" ana="Ncms" chunk="Pp#1,Np#2">Etat</w>   <w lemma="à+le" ana="Dg-mp" chunk="Pp#2,Np#3">aux</w>   <w lemma="transport" ana="Ncmp" chunk="Pp#2,Np#3">transports</w>   <w lemma="affirmer" ana="Vmsp3s" chunk="Vp#1">affirme</w>   <w lemma="relire" ana="Vmn" chunk="Vp#1">relire</w>   <w lemma="chaque" ana="Ai-fs" chunk="Np#4,Ap#1">chaque</w>   <w lemma="semaine" ana="Ncfs" chunk="Np#4">semaine</w>   <w lemma="un" ana="M" chunk="Np#4">un</w>   <w lemma="ou" ana="Cc">ou</w>   <w lemma="deux" ana="M" chunk="Np#5">deux</w>   <w lemma="album" ana="Ncmp" chunk="Np#5">albums</w>   <w lemma="avant" ana="Sp">avant</w>   <w lemma="de" ana="Spd">de</w>   <w lemma="se" ana="Pp3">s'</w>   <w lemma="endormir" ana="Vmn">endormir</w>   <c>.</c>   </s>  </seg>

Page 30: Document Type Definition (DTD)

Un exemple d’annotation XML

• Elements XML– <segments>, <seg>, <s>, <w>, <c>

• Attributs:– lemma, ana, chunk pour l’élement <w>– lang pour l’élément <seg>– id pour l’élément <s>

Page 31: Document Type Definition (DTD)

Un exemple (II)

• Interprétation– Un texte est constitué par un élément <segments>

– Un <segments> est composé par un ou plusieurs éléments <seg>

– Un <seg> est composé par plusieurs phrases <s>

– Une phrase est composée par un ou plusieurs mots <w> ou signes de ponctuation <c>

Page 32: Document Type Definition (DTD)

Document Type Definition (DTD)

• Un fichier externe qui contient les définitions des utilisateurs (éléments et entités XML)

• Référence à la DTD – dans le prolog du document XML

– <!ELEMENT segments (seg+)>

– <!ELEMENT seg (s+)>

– <!ELEMENT s (w|c)*>

– <!ELEMENT w (#PCDATA)* >

– <!ATTLIST w lemma CDATA #IMPLIED ana CDATA #IMPLIED chunk CDATA #IMPLIED>

Page 33: Document Type Definition (DTD)

segments

segseg seg

ss s s s

w w c w w c

Page 34: Document Type Definition (DTD)

Fig. 2.15 DTD pour planner.xml.

1 <!-- Fig. 6.15: planner.dtd -->

2 <!-- DTD for day planner -->

3

4 <!ELEMENT planificateur ( year* )>

5

6 <!ELEMENT annee ( date+ )>

7 <!ATTLIST annee valeur CDATA #REQUIRED>

8

9 <!ELEMENT date ( note+ )>

10 <!ATTLIST date mois CDATA #REQUIRED>

11 <!ATTLIST date jour CDATA #REQUIRED>

12

13 <!ELEMENT note ( #PCDATA )>

14 <!ATTLIST note heure CDATA #IMPLIED>

Page 35: Document Type Definition (DTD)