Vous êtes sur la page 1sur 33

Document Type Definition

Ahmed ZELLOU
zellou_ahmed@hotmail.com
SupMTI, 2021-2022.
DTD
Plan
n Introduction
n Validité des documents
n Document Type Definition
n DTD : élément
n Types de données
n Types d’attributs
n Valeurs par défaut des attributs
n Quelques règles d'écriture
n Limites des DTDs
n Éléments versus Attributs
n Atelier 2
@ A.ZELLOU
DTD
Intérêts
Introduction
Spécifier un schéma pour un document XML.
n
n
n Document
Type n Définir une classe de document (rapport technique,
Definition
bon de commande, article de revue,…).
n DTD :
élément n Permet de définir une structure avec des éléments
n Types de (balises et attributs) à respecter :
données
n Types n Avec souplesse
d’attributs
n Imposer des règles de structure précises
n Quelques
règles n Deux approches:
d'écriture
n Limites des n DTD : plus simple et moins complète
DTDs
n XML-Schema : plus complexe et plus complète
n Éléments
versus
Attributs
3
n Atelier @ A.ZELLOU
DTD
Introduction
Introduction
Un document XML contient :
n
n
n Document
Type n Le document XML lui-même ;
Definition
n DTD : n Le schéma du document (optionnel).
élément
n La DTD (document Type Definition) permet de
Types de
définir un schéma d’un document XML :
n
données
n Types n Vocabulaire
d’attributs
n Quelques n Grammaire
règles
d'écriture n Dialecte
n Limites des n Jargon
DTDs
n Éléments
versus
Attributs
4
n Atelier @ A.ZELLOU
DTD
Well Formed VS Valid
Introduction
Document bien formé (Well Formed document)
n
n
n Document
Type n Respecte les règles syntaxiques du langage
Definition
XML
n DTD :
élément n Parsable et manipulable
Types de
Pas nécessairement valide par rapport à la DTD
n
données n

n Types
d’attributs
n Quelques n Document valide (Valid document)
règles
d'écriture n Bien formé
n Limites des n Conforme à une DTD ou à un schéma XSD
DTDs
n Éléments
versus
Attributs
5
n Atelier @ A.ZELLOU
DTD
Well Formed VS Valid
n Introduction n Un document bien formé
n Document n respecte les règles syntaxiques du langage
Type
Definition XML
n DTD : n R1: le document doit commencer par une
élément déclaration XML (Entete)
n Types de n R2: un élément principal doit enfermer tous les
données autres
n Types n R3: attention à la capitalisation des noms et des
d’attributs
attributs
n Quelques n R4: les balises non vides doivent être appariées
règles
d'écriture n R5: les éléments ne doivent pas se chevaucher
n Limites des n R6: les balises vides doivent être fermées
DTDs n R7: les valeurs des attributs doivent être
n Éléments quottées " "
versus
Attributs n R8: ne pas utiliser les caractères < et & seuls
6
n Atelier @ A.ZELLOU
DTD
DTD, Document Type Definition
n Introduction
n Document
n Une déclaration de type de document définit pour
Type un document bien formé
Definition
n DTD :
n Les noms et types des éléments.
élément
n Leur ordres.
n Types de
données n Les noms et types des attributs.
Types
n
d’attributs n Leurs valeurs par défaut.
n Quelques n Les noms des entités qui peuvent être utilisées
règles
d'écriture n Permet de définir le «vocabulaire» et la structure qui
n Limites des seront utilisés dans le document XML
DTDs
n Éléments n Grammaire du langage dont les phrases sont des
versus documents XML
Attributs
7
n Atelier @ A.ZELLOU
DTD
DTD, Document Type Definition
n Introduction n Les documents XML valides doivent respecter les
n Document règles données dans la DTD
Type
Definition n Dans une DTD, tout ce qui n’est pas expressément
n DTD : autorisé est interdit
élément
n Types de n Peut être interne ou externe
données
n DTD interne : interprétation rapide
n Types
d’attributs n DTD externe: Modèle pour plusieurs documents
n Quelques
règles
d'écriture
n Limites des
n Une DTD peut contenir des commentaires
DTDs
n Éléments
versus
Attributs
8
n Atelier @ A.ZELLOU
DTD
Déclaration de type de document
n Introduction
n Document
n Déclaration de type de document:
Type
Definition <!DOCTYPE ElementRacine
n DTD : et se termine par >
élément
n Types de n Cette déclaration contient la DTD (DTD interne) ou
données une adresse URL (DTD externe)
Types
n
d’attributs n DTD interne:
n Quelques <!DOCTYPE parc-machine [
règles
d'écriture
<!– declarations -- >
n Limites des
]>
DTDs
n Éléments
versus
Attributs
9
n Atelier @ A.ZELLOU
DTD
Déclaration de type de document
Introduction
Définition privée ou publique
n
n
n Document
Type n <!DOCTYPE doc SYSTEM "doc.dtd">
Definition
n DTD : n <!DOCTYPE doc PUBLIC
élément
"http:/:www.xml.com/doc.dtd">
n Types de
données n DTD privée:
Types
n
d’attributs
n Déclaration : <!DOCTYPE ElementRacine
SYSTEM "URLDTD">
n Quelques
règles n Exemple : <!DOCTYPE computers
d'écriture
SYSTEM "chemin/computers.dtd">
n Limites des
DTDs
n Éléments
versus
Attributs
10
n Atelier @ A.ZELLOU
DTD
Déclaration de type de document
n Introduction
n Document
n Définition privée ou publique
Type
Definition n DTD publique:
n DTD : n Déclaration
élément
n Types de <!DOCTYPE ElementRacine PUBLIC
données "URLDTD">
Types
n
d’attributs n Exemple
n Quelques <!DOCTYPE html PUBLIC
règles
d'écriture "http://www.w3.org/TR/xhtml1/DTD/xhtml/
n Limites des
transitional.dtd">
DTDs
n Éléments
versus
Attributs
11
n Atelier @ A.ZELLOU
DTD
DTD : élément
Introduction
n
n Toute déclaration de type d’élément respecte
Document
n
Type un des quatre formats suivants:
Definition
n <!ELEMENT NOM (CONTENU) >
n DTD :
élément n <!ELEMENT NOM (#PCDATA) >
n Types de
données n <!ELEMENT NOM ANY >
n Types
d’attributs
n <!ELEMENT NOM EMPTY >
n Quelques
règles
d'écriture
n Limites des
DTDs
n Éléments
versus
Attributs
12
n Atelier @ A.ZELLOU
DTD
DTD : élément
Introduction
Composition
n
n
n Document
Type n Décrit une balise qui fera partie du vocabulaire.
Definition
n <!ELEMENT tag (contenu)>
n DTD :
élément n Exemple : <!ELEMENT livre (titre, isbn)>
Types de
n
données n Séquence
n Types n L’ordre d’apparition doit être respecté dans le document
d’attributs XML
n Quelques n (ELEMENT1, ELEMENT2)
règles
d'écriture n Exemple : <!ELEMENT auteur (nom, prenom, genre,
n Limites des pays)>
DTDs
n Éléments
n Liste de choix
versus n (ELEMENT1| ELEMENT2| …)
Attributs
13
Atelier n Exemple : <!ELEMENT vehicule (voiture | camion)>
n
@ A.ZELLOU
DTD
DTD : élément
Introduction
ELEMENT?
n
n
n Document
Type n Elément optionnel [0,1]
Definition
n Exemple : <!ELEMENT villa (piscine ?)>
n DTD :
élément n ELEMENT*
n Types de
données n Elément répétitif [0,N]
n Types n Exemple : <!ELEMENT voiture (accident *)>
d’attributs
n Quelques
n ELEMENT+
règles n Elément répétitif [1,N]
d'écriture
n Limites des n Exemple : <!ELEMENT livre (auteur +)>
DTDs
n Éléments
versus
Attributs
14
n Atelier @ A.ZELLOU
DTD
Types de données
n Introduction 1. Spécification du contenu
n Document
Type n #PCDATA (Parsed Character data).
Definition
n Ne peut contenir que des données textuelles analysables.
n DTD :
élément n Elément de texte sans descendants
n Types de n Exemple : <!ELEMENT prenom (#PCDATA)>
données
n Exemple : <!ELEMENT prix (#PCDATA)>
n Types
d’attributs
n Quelques
règles 2. Contenu mixte
d'écriture
n Peut contenir à la fois des caractères et d’autres éléments:
n Limites des
DTDs n Exemple : <!ELEMENT Adresse (#PCDATA, Ville) >
n Éléments
versus
Attributs
15
n Atelier @ A.ZELLOU
DTD
Types de données
Introduction
3. ANY
n

n Document
Type n Tout texte possible, l’élément peut contenir des données
Definition textuelles ou tout autre élément défini dans la DTD
n DTD :
élément n Exemple : <!ELEMENT commentaire ANY>
n Types de 4. EMPTY
données
n L’élément est vide.
n Types
d’attributs n Il ne peut contenir ni sous-éléments ni données textuelles,
n Quelques mais peut avoir des attributs.
règles
d'écriture n Exemple : <!ELEMENT ensembleVide EMPTY>
n Limites des
DTDs
n Éléments
versus
Attributs
16
n Atelier @ A.ZELLOU
DTD
Exemple
n Introduction
n Document
<!ELEMENT doc (livre* | article+)>
Type
Definition <!ELEMENT livre (titre, auteur+)>
n DTD : <!ELEMENT article (titre, auteur*)>
élément
n Types de <!ELEMENT titre (#PCDATA)>
données
<!ELEMENT auteur (nom, adresse)>
n Types
d’attributs <!ELEMENT nom (prenom?, nomfamille)>
n Quelques
règles <!ELEMENT prenom (#PCDATA)>
d'écriture
n Limites des
<!ELEMENT nomfamille (#PCDATA)>
DTDs
<!ELEMENT adresse ANY>
n Éléments
versus
Attributs
17
n Atelier @ A.ZELLOU
DTD
Exemple de DTD interne
n Introduction <?XML version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE annuaire [
n Document <!ELEMENT annuaire (personne*)>
Type <!ELEMENT personne (nom,prenom?,email+)>
Definition <!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
n DTD : <!ELEMENT email (#PCDATA)>
élément ]>
n Types de <annuaire>
données <personne>
<nom>ALAMI</nom>
n Types <prenom>AHMED</prenom>
d’attributs <email>alami@maroc.ma</email>
</personne>
n Quelques <personne>
règles <nom>ALAOUI</nom>
d'écriture <prenom>KAMAL</prenom>
n Limites des <email>alaoui@maroc.ma</email>
DTDs <email>K.alaoui@maroc.ma</email>
</personne>
n Éléments <personne>
versus <nom>IBRAHIMI</nom>
Attributs <email>ibrahimi@maroc.ma</email>
</personne> 18
n Atelier </annuaire> @ A.ZELLOU
DTD
DTD : attribut
Introduction
Permet de définir la liste d’attributs pour une balise
n
n
n Document
Type n La description des attributs se fait au moyen d’une
Definition
déclaration (ATTLIST)
n DTD :
élément n <!ATTLIST tag attribut type [#mode] [valeur]>
Types de
La syntaxe est la suivante:
n
données n

n Types n <!ATTLIST Élément Attribut Type Valeur-par-défaut>


d’attributs
n ou <!ATTLIST Élément Attribut Type #FIXED Valeur>
n Quelques
règles n ou <!ATTLIST Élément Attribut Type #IMPLIED>
d'écriture
n Limites des
n ou <!ATTLIST Élément Attribut Type #REQUIRED>
DTDs
n Éléments
versus
Attributs
19
n Atelier @ A.ZELLOU
DTD
Types d’attributs
n Introduction n CDATA
n Document
Type n Données textuelles
Definition
n <!ATTLIST hebergement quota CDATA #REQUIRED>
n DTD :
élément n Exemple : <hebergement quota=“1To d’espace
n Types de
disque”>....</hebergement>
données
n NMTOKEN
n Types
d’attributs n Un nom XML valide
n Quelques n <!ATTLIST ram unite NMTOKEN #REQUIRED>
règles
d'écriture n Exemple : <ram unite=“Mo”>....</ram>
Limites des
n
DTDs n NMTOKENS
n Éléments n Plusieurs noms XML valides séparés par des espaces
versus
Attributs n <!ATTLIST photo Nom NMTOKENS #REQUIRED>
20
n Atelier n Exemple : <photo Nom=“la terre” ...>....</photo>@ A.ZELLOU
DTD
Types d’attributs
n Introduction n ID
n Document
Type n Un identificateur unique d’un élément.
Definition
n Il doit être un nom XML valide
n DTD :
élément n <!ATTLIST Etudiant numero ID #REQUIRED>
n Types de n Exemple : < Etudiant numero =“X301” ...>...</ Etudiant >
données
n Types n IDREF
d’attributs
n Lien : L’attribut peut prendre comme valeur la valeur d’un
n Quelques attribut de type ID d’un élément du document (référence).
règles
d'écriture n <!ATTLIST machine Num ID>
n Limites des n <!ATTLIST personne ref IDREF #IMPLIED >
DTDs
n Éléments n Exemple :
versus
Attributs
n <machine Num="mach001">… </machine>
21
n Atelier n <personne ref="mach001" …>…</personne>@ A.ZELLOU
DTD
Types d’attributs
Introduction
IDREFS:
n
n
n Document
Type n L’attribut peut prendre comme valeur une liste de valeurs
Definition d’attributs ID de plusieurs éléments du document.
n DTD :
élément n <!ATTLIST machine Num ID>
n Types de n <!ATTLIST personne ref IDREFS #IMPLIED >
données
n Exemple :
n Types
d’attributs n <machine Num ="mach001">… </machine>
n Quelques n <machine Num ="mach002">… </machine>
règles
d'écriture n <personne ref="mach001 mach002" …>…</personne>
n Limites des
DTDs
n Éléments
versus
Attributs
22
n Atelier @ A.ZELLOU
DTD
Types d’attributs
Introduction
(val1|val2|…)
n
n
n Document
Type n Une liste des valeurs possibles pour l’attribut, chaque
Definition valeur doit correspondre à un nom XML valide.
n DTD :
élément n <!ATTLIST photo Type (GIF|JPEG|PNG) “GIF”>
n Types de n Exemple : < photo Type =“JPEG” ...>....</ photo >
données
n Types
d’attributs
n Quelques
règles
d'écriture
n Limites des
DTDs
n Éléments
versus
Attributs
23
n Atelier @ A.ZELLOU
DTD
Types d’attributs
n Introduction
n NOTATION (N1|N2|…)
n Document
Type n L’attribut peut prendre comme valeur le nom d’une
Definition notation.
n DTD :
élément n <!ATTLIST IMAGE type NOTATION GIF
#REQUIRED>
n Types de
données
n Types n Exemple :
d’attributs
n Quelques n <!NOTATION GIF SYSTEM "image/gif" >
règles
d'écriture n <IMAGE type="GIF">… </IMAGE>
n Limites des
DTDs
n Éléments
versus
Attributs
24
n Atelier @ A.ZELLOU
DTD
Valeurs par défaut des attributs
Introduction
n
n Il est possible de donner une valeur par défaut à
n Document un attribut
Type
Definition n <!ATTLIST edition type (papier|electronique) "papier" >
n DTD :
élément n Trois modes sont disponibles :
n Types de n #REQUIRED: l’attribut est toujours présent lorsque
données l’élément est utilisé (pas de valeur par défaut)
n Types
d’attributs n <!ATTLIST edition date CDATA #REQUIRED>
n Quelques n #IMPLIED: l’attribut correspondant est optionnel.
règles
d'écriture n <!ATTLIST edition version CDATA #IMPLIED>
n Limites des n #FIXED valeur: l’attribut correspondant est optionnel.
DTDs Cela revient à définir une valeur constante.
Éléments
n
versus
n <!ATTLIST edition new NMTOKEN #FIXED
Attributs "yes">
25
n Atelier @ A.ZELLOU
DTD
Exemple DTD : attribut
Introduction
n
n Les attributs d’un même élément peuvent se
n Document regrouper.
Type
Definition
n Les attributs peuvent être groupés :
n DTD :
élément <!ATTLIST auteur
genre CDATA #REQUIRED
n Types de
données ville CDATA #IMPLIED
>
n Types
d’attributs <!ATTLIST editeur ville CDATA #FIXED "Paris">
n Quelques
<!ATTLIST machine numero ID #REQUIRED >
règles <!ATTLIST ram unite CDATA #REQUIRED>
d'écriture
n Notes:
n Limites des
DTDs n L’ordre des déclarations d’attributs n’a pas
n Éléments d’importance.
versus
Attributs
26
n Atelier @ A.ZELLOU
DTD
Exemple de ID et IDREF
n Introduction <?xml version="1.0"?>
n Document <!DOCTYPE DOCUMENT
Type
Definition
[
<!ELEMENT DOCUMENT (PERSONNE*)>
n DTD :
élément <!ELEMENT PERSONNE (#PCDATA)>
<!ATTLIST PERSONNE PNUM ID #REQUIRED>
n Types de
données <!ATTLIST PERSONNE MERE IDREF #IMPLIED>
<!ATTLIST PERSONNE PERE IDREF #IMPLIED>
n Types
d’attributs ]>
n Quelques
<DOCUMENT>
règles <PERSONNE PNUM = "P1">Ali</PERSONNE>
d'écriture <PERSONNE PNUM = "P2">Imane</PERSONNE>
n Limites des <PERSONNE PNUM = "P3" MERE="P2" PERE="P1">
DTDs Driss</PERSONNE>
n Éléments <PERSONNE PNUM = "P4" PERE="P1" MERE="P2">
versus Sara</PERSONNE>
Attributs
</DOCUMENT> 27
n Atelier @ A.ZELLOU
DTD
Quelques règles d'écriture
Introduction
n
n Précédence
n Document
Type n Regrouper les déclarations d'entités en tête
Definition
n Modularité
n DTD :
élément n Définir dans des entités séparées les parties réutilisables
Types de
n
données n Abstraction
n Types n Éviter les DTD trop particulières
d’attributs
n Quelques
n Spécificité
règles n Éviter les DTD trop générales
d'écriture
n Limites des n Simplicité
DTDs
n Découper les DTD trop complexes
n Éléments
versus
Attributs
n Les Limites ????
28
n Atelier @ A.ZELLOU
DTD
Limites des DTDs
n Introduction
n Document
n Une syntaxe non XML
Type
Definition n Typage très faible
n DTD :
élément n Pas de personnalisation de type
n Types de
données
n Pas d’indication d’occurences
n Types n Pas d’héritage d’objets
d’attributs
n Quelques n Pas de Sémantique
règles
d'écriture n Outils assez anciens
n Limites des
DTDs n La DTD n’est pas abandonnée
Éléments
n
versus n Remplacer par un standard
Attributs assez riche XSD 29
n Atelier @ A.ZELLOU
DTD
Conclusion
n Introduction
n Document
n Les DTD définissent la grammaire (schéma) des
Type document XML
Definition
n DTD :
n Représentent plusieurs limitations
élément
n Elles sont de plus en plus souvent remplacées par
n Types de
données
des schémas XSD
n Types
d’attributs
n Quelques
règles
d'écriture
n Limites des
DTDs
n Éléments
versus
Attributs
30
n Atelier @ A.ZELLOU
DTD
Atelier 3
n Introduction n Créez la DTD suivante:
Document
n
Type <!ELEMENT carnet (personne+)>
Definition <!ELEMENT personne EMPTY>
n DTD :
élément
<!ATTLIST personne
nom CDATA #REQUIRED
n Types de
données prenom CDATA #IMPLIED
n Types telephone CDATA
d’attributs
#REQUIRED>
n Quelques
règles n Créez un document XML qui soit valide par rapport
d'écriture à cette DTD.
n Limites des
DTDs
n Éléments
versus
Attributs
31
n Atelier @ A.ZELLOU
DTD
Atelier 4
Introduction
Créez une DTD pour valider le fichier « CV.xml »
n
n
Document
n
Type
réalisé dans l’atelier 1.
Definition
n DTD :
élément
n Types de
données
n Types
d’attributs
n Quelques
règles
d'écriture
n Limites des
DTDs
n Éléments
versus
Attributs
32
n Atelier @ A.ZELLOU
Merci

Vous aimerez peut-être aussi