François Bonneville
Enseignement > encodage / XML / HTML > TD n°4 - DTD  

Exercice 1

Rédiger le DTD du fichier XML ci dessous
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>

 

 

Solution :

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE CATALOG [
  <!ELEMENT CATALOG  (CD)*>
  <!ELEMENT CD  (TITLE,ARTIST,COUNTRY,COMPANY,PRICE,YEAR)>
  <!ELEMENT TITLE (#PCDATA)>
  <!ELEMENT ARTIST (#PCDATA)>
  <!ELEMENT COUNTRY (#PCDATA)>
  <!ELEMENT COMPANY (#PCDATA)>
  <!ELEMENT PRICE (#PCDATA)>
  <!ELEMENT YEAR (#PCDATA)>
]>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<TITLE>Hide your heart</TITLE>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>
 
 

 

 

 
 

 

Exercice 2

Créer un fichier XML conforme au DTD ci-dessous :
 

<!DOCTYPE TVSCHEDULE [
<!ELEMENT TVSCHEDULE (CHANNEL+)>
<!ELEMENT CHANNEL (BANNER,DAY+)>
<!ELEMENT BANNER (#PCDATA)>
<!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)>
<!ELEMENT HOLIDAY (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>
<!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)>
<!ELEMENT TIME (#PCDATA)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT DESCRIPTION (#PCDATA)>

<!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED>
<!ATTLIST CHANNEL CHAN CDATA #REQUIRED>
<!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED>
<!ATTLIST TITLE RATING CDATA #IMPLIED>
<!ATTLIST TITLE LANGUAGE CDATA #IMPLIED>
]>

Exercice 3

Rédiger une DTD permettant de valider le fichier XML d'une bibliographie qui contient des livres ou des articles.

  • Les informations nécessaires pour un livre sont :
    • son titre général ;
    • les noms des auteurs ;
    • ses tomes et pour chaque tome, leur nombre de pages ;
    • des informations générales sur son édition par exemple le nom de l'éditeur, le lieu d'édition, le lieu d'impression, son numéro ISBN ;
  • Les informations nécessaires pour un article sont :
    • son titre ;
    • les noms des auteurs ;
    • ses références de publication : nom du journal, numéro des pages, année de publication et numéro du journal
  • On réservera aussi un champ optionnel pour un avis personnel.

Tester cette DTD avec un fichier XML que l'on écrira ex nihilo et validera.