Cours 3 Documents Structures

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 22

Documents structurés

Cours 3

Nassim ZELLAL
DTD (Document Type Definition) - Définition de
Type de Document

 La DTD (Document Type Definition) constitue un mécanisme, qui


permet de décrire la structure d'une classe de documents XML. Une
DTD sert donc à spécifier quels éléments et attributs sont
susceptibles d'apparaître dans les documents instances, quels
éléments peuvent être contenus dans d'autres éléments et dans
quel ordre ils doivent apparaître.
 Une DTD accompagne un document structuré par des balises dans
un langage de structuration comme le XML. La DTD fournit les
règles de cette structuration.
Déclaration d’une DTD

 <?xml version="1.0" ?>


 <!DOCTYPE contacts SYSTEM "usthb.dtd">

 <contacts>
 <personne>
 <nom>Chazalon</nom>
 <prenom>Grégory</prenom>
 ………….
Commentaires - DTD

 <!--<!ATTLIST adresse pays CDATA #REQUIRED>-->


 <!--commentaire-->
Composants d’une DTD - ELEMENT

 <!ELEMENT contacts (personne+)>


 <!ELEMENT personne (nom, prenom,
dateDeNaissance?, lieuDeNaissance, adresse, email+,
telephone*)>
Composants d’une DTD - ATTLIST

 <!ATTLIST email n ID #REQUIRED>

 <!ATTLIST adresse pays CDATA #REQUIRED>

 <!ATTLIST adresse lang (fr|en) #REQUIRED>

 <!ATTLIST lieuDeNaissance arrondissement CDATA


#FIXED "Brooklyn">
Composants d’une DTD - connecteurs

 , séquence
<!ELEMENT personne (nom, prenom, dateDeNaissance,
lieuDeNaissance, adresse, email, telephone?)>

 | ou (choix)
<!ATTLIST adresse lang (fr|en) #REQUIRED>

 ) ( délimiteur d’ouverture et de fermeture de groupe


<!ELEMENT personne (nom, prenom, dateDeNaissance,
lieuDeNaissance, adresse, email, telephone?,(a|b))>

Remarque : L’ordre dans une séquence d’une DTD doit être respecté.
Composants d’une DTD - indicateurs d’occurrence
 Rien Obligatoire et non répétable (présent une seule fois)
<!ELEMENT corpus (journal)>

 ? Optionnel (zéro ou une fois)


<!ELEMENT personne (nom, prenom, dateDeNaissance?,
lieuDeNaissance, adresse, email+, telephone*)>

 + Obligatoire et répétable (une fois ou plus)


<!ELEMENT personne (nom, prenom, dateDeNaissance?,
lieuDeNaissance, adresse, email+, telephone*)>

 * Optionnel et répétable (zéro, une ou plusieurs fois)


<!ELEMENT personne (nom, prenom, dateDeNaissance?,
lieuDeNaissance, adresse, email+, telephone*)>
Composants d’une DTD - modèle de contenu

 <!ELEMENT img EMPTY> élément vide

 <!ELEMENT memo (auteur, destinataires, sujet,corps)> un ou


plusieurs éléments

 <!ELEMENT em (#PCDATA)> données textuelles (Parsed


Character DATA)

 <!ELEMENT para (#PCDATA | auteur)> contenu mixte


Composants d’une DTD - types d’attributs

 <!ATTLIST adresse pays CDATA #REQUIRED>

 <!ATTLIST email n ID #REQUIRED>


Composants d’une DTD - valeur par défaut d’un
attribut

 #IMPLIED : la présence de l’attribut est facultative.


 <!ATTLIST adresse pays CDATA #IMPLIED >

 #REQUIRED : l'attribut est obligatoire.


 <!ATTLIST adresse pays CDATA #REQUIRED>

 #FIXED : la valeur de l'attribut doit être définie dans la DTD. Cette


valeur est alors inférée de la DTD vers chaque instance XML.
 <!ATTLIST lieuDeNaissance arrondissement CDATA #FIXED
"Brooklyn">
Un exemple - contacts.xml  contacts.dtd
Un exemple - contacts.dtd  contacts.xml
Exercice 1 - voiture.xml - écrire la DTD
<?xml version="1.0"?>
<Voiture marque="Renault" modèle="Safrane">
<Carosserie couleur="rouge">
<Capot>Un peu cabossé</Capot>
</Carosserie>
<Moteur>
<!-- Ceci est un document XML -->
<Cylindres />
<Allumage>Défectueux</Allumage>
</Moteur>
<Transmission type="automatique" nb_vitesses="5">
<Boîte />
<TrainAV />
<TrainAR />
</Transmission>
</Voiture>
Exercice 2 - sortie.xml - écrire la DTD
Exercice 3 - book.xml - écrire la DTD
Exercice 4 - list.xml - écrire la DTD
Exercice 5 - enc1.xml - écrire la DTD
Exercice 6 - enc2.xml - écrire la DTD
Exercice 7 - enc3.xml - écrire la DTD
Éditeurs XML

 XMLCooktop (Cooktop)

 XML Copy Editor

 Exchanger XML Editor

 Notepad++ (plugin XML Tools)


Mon courriel

[email protected]

Vous aimerez peut-être aussi