0% ont trouvé ce document utile (0 vote)
9 vues30 pages

Technologie Web: XML Et DTD

Ce document présente les technologies XML et DTD, en expliquant leurs origines, structures et différences par rapport à HTML. Il détaille la syntaxe XML, les éléments, les attributs, ainsi que les bonnes pratiques pour écrire des documents XML valides et bien formés. Enfin, il aborde la définition et l'importance des DTD dans la validation des documents XML.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues30 pages

Technologie Web: XML Et DTD

Ce document présente les technologies XML et DTD, en expliquant leurs origines, structures et différences par rapport à HTML. Il détaille la syntaxe XML, les éléments, les attributs, ainsi que les bonnes pratiques pour écrire des documents XML valides et bien formés. Enfin, il aborde la définition et l'importance des DTD dans la validation des documents XML.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

INSA - ASI TechnoWeb : XML 1/30

Technologie Web
XML et DTD

Alexandre Pauchet

INSA Rouen - Département ASI

[Link].18, pauchet@[Link]
INSA - ASI TechnoWeb : XML 2/30

Plan

1 Introduction

2 Document XML

3 Les DTD
INSA - ASI TechnoWeb : XML 3/30

Introduction (1/4)
Origines : SGML et HTML

HTML
HTML = HyperText Markup Language
Modèle de représentation d'hyper-documents
Très utilisé par les serveurs et les clients WEB
Déni selon le standard SGML

SGML
Standard Generalized Markup Language
Représentation de données et de documents structurés
Méta-langage de balisage de documents

XML
eXtensible Markup Language
Standard développé par le W3C
Forme étendue de HTML : dénition de balises
Sous ensemble restreint de SGML : applications WEB
Peut être utilisé avec les protocoles (HTTP, MIME) et les mécanismes
(URL) du WEB
INSA - ASI TechnoWeb : XML 4/30

Introduction (2/4)
Comparaison HTML/XML

<p>Alexandre Pauchet</p> <enseignant corps=" maître de c o n f é r e n c e s ">


<p> <prenom>Alexandre</prenom>
INSA de Rouen<br /> <nom>Pauchet</nom>
BP08<br /> <a d r e s s e>
Avenue de lUniversité<br /> <s t r u c t u r e>INSA de Rouen</ s t r u c t u r e>
76800 Saint - Étienne du <bp>BP08</bp>
Rouvray <rue>Avenue de lUniversité</ rue>
</p> <cp>76800</cp>
< v i l l e>Saint Étienne du Rouvray</ v i l l e>
</ a d r e s s e>
</ enseignant>

Balises et sémantiques Extensibilité du langage


associées sont prédénies Structuration logique
Mélange de structurations Achage déléguée (CSS, XSL)
logique et physique
Modularité et réutilisation des structures
Achage déléguée (CSS)
Facilite l'accès à des sources de données
Perte du sens hétérogènes
INSA - ASI TechnoWeb : XML 5/30

Introduction (3/4)
Structure, contenu et présentation

1 document = 3 aspects diérents


Le contenu (le fond)
La structure logique
La présentation (la forme)

XML : séparation contenu textuel/structure logique


Autres contenus = ressources externes (photos, vidéos, sons, . . . )
Présentation décrite par moyens complémentaires (CSS, XSL, . . . )
Présentation indépendante des contenus et de la structure
INSA - ASI TechnoWeb : XML 6/30

Introduction (4/4)
Exemple : Description d'un article en XML

Exemple

<?xml v e r s i o n=" 1.0 " encoding="UTF−8" standalone=" yes "?>


<!DOCTYPE album [
<!ELEMENT album ( t i t r e , auteur , contenu )>
<!ELEMENT t i t r e (#PCDATA)>
<!ELEMENT auteur (#PCDATA)>
<!ELEMENT contenu ( p i s t e +)>
<!ELEMENT p i s t e (#PCDATA)>
]>
<? xml − stylesheet type=" t e x t / c s s " h r e f=" styleAlbum . c s s "?>
<album>
<t i t r e>Le monde de la chatouille</ t i t r e>
<auteur>Sacha Touille</ auteur>
<contenu>
<p i s t e>01 - Guiliguili</ p i s t e>
<p i s t e>02 - Gratouilli</ p i s t e>
</contenu>
</album>
INSA - ASI TechnoWeb : XML 7/30

Document XML (1/10)


Structure d'un document XML

Prologue
Déclaration XML
Déclaration de type
Instructions de traitement

Arbre des éléments


Éléments (balises)
Attributs
Entités
...
INSA - ASI TechnoWeb : XML 8/30

Document XML (2/10)


Prologue : déclaration XML

Déclaration XML
<?xml v e r s i o n=" 1.0 " [ encoding="encodage" ] [ standalone=" yes | no" ] ?>

La déclaration XML indique :

la conformité du document à une version de la norme XML,

le jeu de caractères utilisé dans le document,

la présence ou non de références externes.

Cette déclaration est facultative mais fortement conseillée

notamment pour le problème d'encodage des caractères


INSA - ASI TechnoWeb : XML 9/30

Document XML (3/10)


Prologue : déclaration de type

Déclaration de type

<!DOCTYPE elt−racine Info−DTD [ déclarations internes ] >

La DTD ( Document Type Denition) d'un document XML dénit la


grammaire d'un document XML :

Elle facilite l'échange de chiers (fournit une description)

Elle facilite la validation de document (impose une grammaire)

Elle peut être :

Interne/externe : un document ou plusieurs documents

System/public : privée ou publiée ociellement


INSA - ASI TechnoWeb : XML 10/30

Document XML (4/10)


Prologue : instructions de traitement

Instructions facultatives
Leur contenu est transmis à une application pour traitement
<? c i b l e arg1=" v a l 1 " arg2=" v a l 2 " . . . ?>

cible : nom d'une application (xml est un mot réservé)


arguments passés à l'application cible

Exemple

<? xml − stylesheet type=" t e x t / c s s " h r e f=" s t y l e . c s s " ?>


INSA - ASI TechnoWeb : XML 11/30

Document XML (5/10)


Structure et éléments

Structure d'un document XML


Un document XML est une structure logique arborescente
Élément/noeud = constituant logique du document
Éléments non prédénis mais choisis en fonction du type de
document à représenter
L'ensemble de la structure est ordonnée
Le contenu est structuré en éléments qualiés par des attributs valués
Un élément est représenté par une paire de balises (tags) et leur
contenu
Les balises ouvrantes portent les éventuels attributs
L'imbrication et l'ordre des éléments reètent la structure
INSA - ASI TechnoWeb : XML 12/30

Document XML (6/10)


Contraintes syntaxiques

Un document possède une racine et une seule.

Les éléments :
doivent avoir une balise ouvrante et une balise fermante,
peuvent être vides (éléments auto-fermants),
doivent être imbriquées,
peuvent avoir 0,1 ou plusieurs attributs.

Un nom d'élément :
doit commencer par une lettre ou un  _,
peut comporter des chires, des lettres,  -,  . ou  _,
peut posséder un nom de domaine : "domaineDeNoms:nomElement",
est sensible à la casse.

Les attributs d'un élément :


donnent des précisions sur les éléments et sur leur contenu,
doivent avoir un nom et une valeur,
ne sont pas sensibles à l'ordre.
INSA - ASI TechnoWeb : XML 13/30

Document XML (7/10)


Commentaires, CDATA et Entités prédénies

Caractères spéciaux
Pour le contenu de tags et les attributs, XML prédénit les 5 entités suivantes :
& → &amp; ' → &apos; > → &gt; < → &lt; " → &quot;

Commentaires
<!−−ceci est un commentaire −−>

Contraintes sur les commentaires :


Tout le contenu sera ignoré par l'analyseur XML
Pas de commentaire à l'intérieur d'autres tags

CDATA
Indique à l'analyseur de ne pas tenir compte du balisage :
<![CDATA[=>texte non regarde par l'analyseur]]>
Utile lorsque l'on inclut du Javascript à XML (ex : XHTML)
INSA - ASI TechnoWeb : XML 14/30

Document XML (8/10)


Bonne formation et validité

Document XML bien formé

Un document XML est bien formé s'il respecte la syntaxe XML :


il contient 1 ou plusieurs éléments,
un seul élément contient tous les autres (racine),
les éléments sont correctement imbriqués,
les balises de début et n correspondent (casse comprise),
les noms d'attributs sont uniques par élément,
les valeurs d'attributs sont entre " ou ',
les valeurs d'attributs ne référencent pas d'entités externes,
les entités sont déclarées avant d'être utilisées.

Document XML valide

Un document XML est valide s'il se conforme à sa DTD


⇒ le document est conforme à un modèle de structure
INSA - ASI TechnoWeb : XML 15/30

Document XML (9/10)


Conseils pour l'écriture de documents XML

Choisir des noms d'éléments (balises) qui représentent leur rôle


(sémantique), ils doivent être aussi explicites que possible.
Le balisage doit être indépendant de la réalisation physique du
document (ex : pas de <gras>).
Préférer un balisage méta-typographique : (ex :
<important>, <ligne>, <cellule>).

La position d'un élément à l'intérieur d'un autre est importante


(l'ordre des balises est préservé).

Inclure dans le document des métadonnées descriptives an de


décrire le document.

L'indexation d'un document se fait sur le contenu des balises, pas sur
les valeurs des attributs.
INSA - ASI TechnoWeb : XML 16/30

Document XML (10/10)


Conseils pour l'écriture de documents XML

Utilisez un élément (balise) lorsque :


le contenu comporte plusieurs mots,
l'ordre est important (il n'y a pas d'ordre sur les attributs),
l'information fait partie du contenu du document par opposition à un
attribut ajustant le comportement d'une balise. Si un analyseur n'est
pas capable de traiter un document XML, il achera le contenu des
balises mais pas les attributs.

Utilisez un attribut lorsque :


l'information modie la balise d'un point de vue du traitement
exemple : <liste type="numérotée">... </liste>,
vous souhaitez contrôler les valeurs,
l'information est un identiant unique ou une référence à l'identiant
d'une autre balise.
INSA - ASI TechnoWeb : XML 17/30

Les DTD (1/14)


Un exemple simple de DTD

[Link]

<?xml v e r s i o n=" 1.0 " encoding="UTF−8"?>


<!ELEMENT personne ( i d e n t i t e , a c t i v i t e * )>
<!ELEMENT i d e n t i t e ( prenom , nom)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT a c t i v i t e (#PCDATA)>

[Link]

<?xml v e r s i o n=" 1.0 " encoding="UTF−8" standalone="no"?>


<!DOCTYPE personne SYSTEM " . / personne . dtd" >
<personne>
<i d e n t i t e>
<prenom>Eustache</prenom>
<nom>Dupond</nom>
</ i d e n t i t e>
<a c t i v i t e>détective</ a c t i v i t e>
<a c t i v i t e>gardien de nuit</ a c t i v i t e>
</ personne>
INSA - ASI TechnoWeb : XML 18/30

Les DTD (2/14)


DTD d'un document

DTD

DTD = Document Type Denition


Elle dénit éléments et règles d'utilisation (noms des éléments,
attributs possibles pour un élément, imbrications)
⇒Modèle de document XML

Si un document n'a pas de DTD et qu'il suit les règles dénies par
XML, il est bien formé

Si un document est bien formé et qu'il fait référence à une DTD à


laquelle il est conforme, il est valide

Ni la DTD, ni le document XML ne contiennent d'information


concernant l'achage, c'est la CSS qui dénira la présentation
INSA - ASI TechnoWeb : XML 19/30

Les DTD (3/14)


Document sans DTD

Document sans DTD


Le balisage est déni de manière informel
Il doit être bien formé pour pouvoir être aché par un navigateur
Le document doit préciser dans sa déclaration XML qu'il est
autonome (SDD = Standalone Document Declaration)

Remarque

Un document sans DTD peut être aché mais ne peut pas être interprété
INSA - ASI TechnoWeb : XML 20/30

Les DTD (4/14)


A quoi sert la DTD ?

DTD = grammaire du document XML

Elle décrit

Les éléments types :


noms de balises autorisées,
ordre et imbrication des balises,
caractère optionnel des éléments.

Les attributs pour chaque élément :


noms des attributs autorisés,
caractère optionnel/obligatoire des attributs,
type,
valeur par défaut.
INSA - ASI TechnoWeb : XML 21/30

Les DTD (5/14)


Déclaration de DTD

3 types de déclaration

DTD interne

<!DOCTYPE racine [declarations]>

DTD externe privée

<!DOCTYPE racine SYSTEM "[Link]">


<!DOCTYPE racine SYSTEM "[Link]

DTD externe publique

<!DOCTYPE r a c i n e PUBLIC "nomConnu" "URL">

Remarque : on peut combiner une partie de DTD interne et une partie de


DTD externe (privée ou publique).
INSA - ASI TechnoWeb : XML 22/30

Les DTD (6/14)


Prologue d'une DTD

Prologue
Le prologue est identique à un document XML, excepté standalone
et DOCTYPE qui n'ont aucun sens dans une DTD.
Utilité : déclarer l'encodage utilisé dans la DTD

Une DTD n'a pas nécessairement de prologue

Exemple

<?xml v e r s i o n=" 1.0 " encoding="UTF−8" ?>

Remarque : l'encodage de la DTD n'est pas propagé aux documents XML


utilisant cette DTD
INSA - ASI TechnoWeb : XML 23/30

Les DTD (7/14)


Contenu d'une DTD

Déclarations dans les DTD


Déclarations des éléments autorisés :
<!ELEMENT nomBalise (contenu)>
Déclaration de l'ordre des éléments dans (contenu)
Déclarations des attributs des éléments :
<!ATTLIST element attribut type>

Remarque : l'ordre des déclarations n'est pas important.

Exemple

<!ELEMENT auteur (nom, prenom, initial)>


INSA - ASI TechnoWeb : XML 24/30

Les DTD (8/14)


Déclaration d'un élément

Déclaration d'un élément


<!ELEMENT nomElement EMPTY|ANY|(modeleContenu)>

Un élément peut :
être vide,
contenir n'importe quel élément déclaré de la DTD,
être formaté selon un modèle.

Les éléments non vides peuvent contenir :


uniquement des données,
<!ELEMENT nomElement (#PCDATA)>
uniquement d'autres éléments,
<!ELEMENT nomElement (element1, element2, ...)>
<!ELEMENT nomElement (element1+, element2*, element3?)>
<!ELEMENT nomElement (element1 | element2 |...)>
des données et d'autres éléments.
ex : <!ELEMENT type(#PCDATA | article | livre)
INSA - ASI TechnoWeb : XML 25/30

Les DTD (9/14)


Déclaration d'attribut

Déclaration d'attribut
<!ATTLIST element a t t r i b u t type v a l u e>

Principaux types d'attributs :


CDATA : données textuelles ne contenant pas de balises XML
(valeur1|...|valeurN) : liste de valeurs possibles
ENTITY : entité déclarée dans la DTD
NOTATION : notation déclarée dans la DTD
ID : l'attribut possède une valeur unique pour chaque élément
IDREF : l'attribut se réfère à un ID d'un autre attribut
IDREFS : l'attribut peut se référer à plusieurs ID, chaque valeur étant
séparée par un espace.

value vaut :

une valeur par défaut entre guillemets simples ' ou doubles ",
#REQUIRED : valeur d'attribut obligatoire,
#IMPLIED : valeur d'attribut optionnelle,
#FIXED 'val' : dénit une valeur xée pour l'attribut.
INSA - ASI TechnoWeb : XML 26/30

Les DTD (10/14)


Exemple

[Link]

<?xml v e r s i o n=" 1.0 " encoding="UTF−8"?>


<!ELEMENT a r b r e ( personne+)>
<!ELEMENT personne ( prenom , nom, nom?)>
<!ATTLIST personne i n d i v i d u a l _ i d ID #REQUIRED parent_id IDREFS #IMPLIED>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT nom (#PCDATA)>
<!ATTLIST nom m a r i t a l ( oui | non ) #IMPLIED>

[Link]

<?xml v e r s i o n=" 1.0 " encoding="UTF−8" standalone="no"?>


<!DOCTYPE a r b r e SYSTEM " . / arbre −genealogique . dtd" >
<a r b r e>
<personne i n d i v i d u a l _ i d="e10001" parent_id="e10002 e10003">
<prenom>Bart</prenom><nom>Simpson</nom>
</ personne>
<personne i n d i v i d u a l _ i d="e10002">
<prenom>Homer</prenom><nom>Simpson</nom>
</ personne>
<personne i n d i v i d u a l _ i d="e10003">
<prenom>Marge</prenom><nom m a r i t a l=" oui ">Simpson</nom><nom>Bouvier</nom>
</ personne>
</ a r b r e>
INSA - ASI TechnoWeb : XML 27/30

Les DTD (11/14)


Déclaration d'entité

Déclaration d'entité

Entité = alias pour un groupe de données

Non analysables : <!ENTITY nom SYSTEM "URI" NDATA notation>


Elles permettent de déclarer du contenu non-XML dans un document
XML (audio, vidéos, images...)

Générales internes : <!ENTITY nom "chaine"> → &nom;


Générales externes : <!ENTITY nom SYSTEM "URI"> → &nom;
Paramètres internes : <!ENTITY %nom "chaine"> → %nom;
Paramètres externes : <!ENTITY %nom SYSTEM "URI"> → %nom;

NB : les entités générales peuvent être substituées dans le corps d'un

document XML, les entités paramètres dans la DTD elle-même.


INSA - ASI TechnoWeb : XML 28/30

Les DTD (12/14)


Composition de DTD

Inclusion d'une DTD dans une DTD

<!ENTITY %secondeDTD SYSTEM "secondeDTD . dtd">


...
% secondeDTD ;

En cas de conit de nom :

Si plusieurs déclarations d'un même élément, la 1ère est prise en


compte

Si plusieurs déclarations d'attributs diérents pour un même


élément, concaténation

Si plusieurs déclarations d'un même attribut pour un même élément,


la 1ère est prise en compte
INSA - ASI TechnoWeb : XML 29/30

Les DTD (13/14)


Déclaration de notation

Notation
<!NOTATION nomNotation SYSTEM|PUBLIC "notation">

Elle identie par un nom le format des entités non analysées par le
parseur XML.

Elle dénit le format des données et les applications qui permettent


de les traiter.

Exemples

<!NOTATION GIF SYSTEM "GIF">


<!NOTATION GIF89a PUBLIC "−//Compuserve//Notation Graphics Interchange Format 89a//EN">
INSA - ASI TechnoWeb : XML 30/30

Les DTD (14/14)


Une alternative au DTD : les schémas XML

Inconvénients des DTD


Syntaxe particulière
⇒ apprentissage plus long, pas d'automatisation possible, . . .
1 seul type de données : PCDATA
Pas de dénition précise du nombre d'occurrences
Peu de vérications des données à l'intérieur d'un élément

Avantages des Schémas XML sur les DTD


Typage des données : plusieurs type de données, création de nouveaux
types, . . .
Syntaxe XML
Schémas orientés objet : extension/restriction des types, . . .

Vous aimerez peut-être aussi