Vous êtes sur la page 1sur 30

XML DTD

École Nationale des Sciences


Appliquées d’Oujda

Chapitre 1 :
XML, DTD

31 janvier 2022

Zineb BOUGROUN XML 1 / 29


XML DTD

Plan du cours

1 XML

2 DTD

Zineb BOUGROUN XML 2 / 29


XML DTD

Plan du cours

1 XML

2 DTD

Zineb BOUGROUN XML 2 / 29


XML DTD

Plan du cours

1 XML

2 DTD

Zineb BOUGROUN XML 3 / 29


XML DTD

Qu’est ce que XML et pourquoi l’utiliser ?

• XML est un format fondé sur des balises comme HTML, mais il décrit le
contenu plutôt que la présentation du contenu.
• XML tend à se généraliser comme format de document, c’est
dorénavant le format de fichiers de Office et LibreOffice.
• il s’agit d’un langage orienté texte et formé de balises qui permettent
d’organiser les données de manière structurée. XML dérive de SGML
(Standard Generalized Markup Language) et de HTML (HyperText
Markup Language)

Zineb BOUGROUN XML 4 / 29


XML DTD

XML = eXtensible Markup Language

• contient des déclarations, éléments, commentaires, définition de


caractères spéciaux et instructions (facultatives) de traitement
• c’est un arbre : il doit avoir une racine et les éléments doivent s’imbriquer
proprement
• Plus simple que SGML, plus complexe mais moins confus et plus
performant que HTML
• Recommandation officielle du W3C depuis le 10 février 1998
• Idéal pour l’échange de données semi-structurées
• Utilisable entre machines

Zineb BOUGROUN XML 5 / 29


XML DTD

XML

Balise (ou tag ou label)


• marque de début et fin permettant de repérer un élément de données
(textuel)
• forme : de début, de fin
• les balises indiquent la signification des sections marquées
Elément de données
• texte encadré par une balise de début et une de fin
• les éléments de données peuvent être imbriquées

Attribut
• couple nom="valeur" qualifiant une balise
Les utilisateurs définissent leurs propres balises Il est possible d’imposer une
grammaire spécifique (DTD, Schéma)

Zineb BOUGROUN XML 6 / 29


XML DTD

STRUCTURE D’UN DOCUMENT XML

Zineb BOUGROUN XML 7 / 29


XML DTD

Document bien formé

• Un document doit commencer par une déclaration XML


• Le document doit contenir un et un seul élément racine
• Toutes les balises avec un contenu doivent être fermées
• Toutes les balises sans contenu doivent se terminer par les caractères />

• Les balises ne doivent pas se chevaucher

• La casse doit être respectée pour toutes les occurrences de noms de


balise (MAJUSCULES ou minuscules).
• Les valeurs d’attributs doivent être entre guillemets
Un document respectant ces critères est dit “bien formé”

Zineb BOUGROUN XML 8 / 29


XML DTD

XML : format interne (arbre)

Zineb BOUGROUN XML 9 / 29


XML DTD

Attributs vs. éléments

Il faut plutôt utiliser un élément


• lorsque l’ordre est important (l’ordre des attributs est au hasard)
• lorsqu’on veut réutiliser un élément plusieurs fois (avec le même parent)
• lorsqu’on veut (dans le futur) avoir des descendants / une structure
interne
• pour représenter un type de données (objet) plutôt que son usage,
autrement dit : une "chose" est un élément et ses propriétés sont des
"attributs"
Il faut plutôt utiliser un attribut
• pour indiquer l’usage/type/etc. d’un élément
• lorsque vous voulez imposer des valeurs par défaut dans la DTD

Zineb BOUGROUN XML 10 / 29


XML DTD

Plan du cours

1 XML

2 DTD

Zineb BOUGROUN XML 11 / 29


XML DTD

XML, DTD, Schéma

• Un document XML peut être associé à :


• Une DTD ou un schéma pour décrire la structure du document XML

Zineb BOUGROUN XML 12 / 29


XML DTD

Relations de conformité

Zineb BOUGROUN XML 13 / 29


XML DTD

DTD (DEFINITIONS DE TYPES DE DOCUMENT )

• C’est une grammaire qui permet de définir le «vocabulaire» et la


structure qui sera utilisée dans le document XML (l’imbrication des
balises)
• possibilité de décrire si les balises sont obligatoires ou optionnelles
• Il existe d’autres types de grammaires comme XML Schema (XSD),
Relax NG, etc. leur puissance sémantique est plus élevée (on peut
exprimer plus de contraintes)
• DTD est le plus répandu
• XML Schema le plus souvent utilisé pour formaliser des langages
"webservices", par ex. SOAP

Zineb BOUGROUN XML 14 / 29


XML DTD

Document Valide

• Document bien formé


• être associé à une DTD (ou une autre grammaire)
• et être conforme à cette DTD ou une grammaire d’un autre type comme
XSD (XML Schema Definition) ou RelaxNG

Zineb BOUGROUN XML 15 / 29


XML DTD

Document Valide

• La DTD est déclarée dans le document XML par la balise !DOCTYPE


• Elle peut être :
• incluse dans le code source du fichier XML, ou DTD interne :
<!DOCTYPE élément-racine [déclaration des éléments]>
• décrite dans un fichier externe, ou DTD externe :
<!DOCTYPE élément-racine SYSTEM "nom_fichier.dtd">

Zineb BOUGROUN XML 16 / 29


XML DTD

Document Valide

Zineb BOUGROUN XML 17 / 29


XML DTD

Document Valide

Zineb BOUGROUN XML 18 / 29


XML DTD

DTD

La DTD contient :
• Une ou plusieurs définitions d’éléments introduites par la
balise !ELEMENT :
<!ELEMENT nom-élément valeur>
• Une ou plusieurs listes d’attributs introduites par la balise !ATTLIST :
<!ATTLIST nom-élément attribut type défaut>
• Une ou plusieurs définitions d’entité introduites par la balise !ENTITY :
<!ENTITY nom-entité "valeur">
ou
<!ENTITY nom-entité SYSTEM "nom_fichier">

Zineb BOUGROUN XML 19 / 29


XML DTD

DTD : ELEMENTS

Chaque balise d’un document XML valide doit être déclarée à l’aide d’un
élément dans la DTD associée.
Syntaxe
<!ELEMENT nom-élément valeur-élément>

• nom-élément est une balise du document XML


• valeur-élément prend l’une des trois formes :
• (contenu) : Déclaration d’un élément à contenu explicite. Exemple :
<!ELEMENT sujet (#PCDATA)>
• EMPTY : Déclaration d’un élément vide. Utilisé en HTML pour les sauts de
ligne (BR), image, filet horizontal (HR) etc. Exemple :
<!ELEMENT br EMPTY>
• ANY : Déclaration d’un élément pouvant contenir tout type de donnée.
Exemple :
<!ELEMENT note ANY>

Zineb BOUGROUN XML 20 / 29


XML DTD

DTD : ELEMENTS

Contenu explicite :
• Combinaison d’un ou plusieurs items :
• Mot-clé #PCDATA (Parsed Character Data) : le contenu est une chaîne de
caractères
• Nom d’un autre élément de la DTD
• Chaque item peut être suivi par un caractère facultatif d’occurrence :
• ? : l’item apparaît zéro ou au plus une fois
• + : l’item apparaît au moins 1 fois
• * : l’item apparaît zéro fois ou plus
• Les items sont séparés par :
• Le caractère virgule « , » si les 2 items sont tous deux inclus dans le contenu
• Le caractère pipe « | » si le contenu est un choix entre les 2 items
Les items peuvent être regroupés à l’aide de parenthèses pour définir des
ordres de priorité ou d’occurrence

Zineb BOUGROUN XML 21 / 29


XML DTD

DTD : ELEMENTS

Zineb BOUGROUN XML 22 / 29


XML DTD

DTD : ELEMENTS

Zineb BOUGROUN XML 23 / 29


XML DTD

DTD : ATTRIBUT

• Les balises ouvrantes et les balises vides peuvent contenir des couples
nom-valeur des attributs
• Les attributs possibles d’un élément du document XML sont déclarés
dans la DTD associée.

Zineb BOUGROUN XML 24 / 29


XML DTD

DTD : ATTRIBUT

Syntaxe
<!ATTLIST nom-élément nom-attribut type valeur-défaut>

• nom-élément est le nom d’un élément défini dans la DTD par la


balise !ELEMENT
• nom-attribut est le nom de l’attribut présentement défini pour l’élément
nom-élément
• type peut prendre l’une des valeurs :
• CDATA : la valeur correspond au contenu de l’élément
• (choix1|choix2|. . .) : la valeur doit être l’une des choix énumérés
• ID : la valeur est un identifiant unique
• ENTITY : la valeur est une entité
• valeur-défaut prend l’une des valeurs :
• valeur : valeur par défaut donnée à l’attribut
• #REQUIRED : attribut obligatoire, sans valeur par défaut
• #IMPLIED : attribut optionnel, sans valeur par défaut
• #FIXED valeur : valeur fixe

Zineb BOUGROUN XML 25 / 29


XML DTD

DTD : exemple

Zineb BOUGROUN XML 26 / 29


XML DTD

DTD : ENTITÉS

Définition d’une entité XML


• Une entité est une variable utilisée pour définir du texte.
• L’intérêt d’une entité consiste à pouvoir remplacer autant de fois que
nécessaire dans le document XML l’entité par le texte qui lui est associé.
• Dans le document XML, la référence à une entité est introduite par le
caractère "&" suivi du nom de l’entité, et terminée par le caractère " ;". Il
existe 5 entités prédéfinies en XML : lt, gt, amp, apos et quot (caractères
< > & ’ ")
Une entité est définie avec la balise !ENTITY, et dite :
• Interne si sa valeur est donnée dans la DTD
<!ENTITY nom-entité "valeur">
• Externe si sa valeur est fournie dans un fichier externe à la DTD
<!ENTITY nom-entité SYSTEM "nom_fichier">

Zineb BOUGROUN XML 27 / 29


XML DTD

DTD : ENTITÉS

Zineb BOUGROUN XML 28 / 29


XML DTD

DTD : ENTITÉS

Zineb BOUGROUN XML 29 / 29

Vous aimerez peut-être aussi