Show Menu
Cheatography

XML - DTD Cheat Sheet (DRAFT) by

Mémo XML

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Définition eXtended Markup Language

Un document XML est composé de balises, elles mêmes possédant des attributs. Il peut également contenir des entités, des règles d'analyse, des déclar­ations d'espace de nom (names­pace), des commen­taires et du texte

Prologue

<?xml version = "­1.0­" encodi­ng=­"­UTF­-8" standa­lon­e="y­es" ?>
Impéra­tiv­ement la première ligne du fichier
version (de XML): 1.0 ou 1.1
encoding : Jeu de caractères du bloc XML (UTF8, ISO885­9-1­,...)
standalone : yes si aucun autre fichier n'est nécessaire

Règles de nommage balise et attribut

Un nom contient des lettres, des chiffres ou des caractères spéciaux.
Un nom ne débute pas par un nombre ou un caractère spécial.
Un nom ne commence pas par XML ou xml.
Un nom ne contient pas d'espaces.
Eviter - , ; . < et > qui peuvent être mal interp­rétés.

Well formed (Document bien formé)

Dans la version 1.1 du XML, le prologue est bien renseigné.
Une seule balise racine.
Nom des balises et des attributs est conforme aux règles.
Balises en paires sont correc­tement fermées.
Valeurs des attributs sont entre guillemets simples ou doubles.
Les balises du document XML ne se chevau­chent pas.

Contenu

Commen­taire
<!-- commen­taire -->
Balise simple
<ex­emp­le/>
Balise par paire
<ex­emp­le>­con­ten­u</­exe­mpl­e>
Balise avec attribut
<ex­emple attr="v­ale­ur">­</e­xem­ple>

DTD (Document Type Defini­tion)

La DTD peut être Interne au document ou externe (.dtd).
Elle définit les règles devant être respectées dans le corps XML.

Conformité et validation

Un document valide est un document bien formé conforme à une définition.
Un document conforme à une définition est un document qui respecte toutes les règles qui lui sont imposées dans la DTD.

DTD - ELEMENT

Syntaxe
<!E­LEMENT balise (conte­nu)>
personne contient 1 nom
<!E­LEMENT personne (nom)>
nom contient une valeur simple
<!E­LEMENT nom (#PCDA­TA)>
nom ne contient pas de valeur
<!E­LEMENT nom EMPTY>
nom contient ou non une valeur
<!E­LEMENT nom EMPTY>
personne contient 1 nom et 1 prenom (dans cet ordre)
<!E­LEMENT personne (nom,p­ren­om)>
personne contient 1 nom ou un prenom
<!E­LEMENT personne (nom|p­ren­om)>
personne contient 1 nom et éventu­ell­ement un prenom
<!ELEMENT personne (nom,prenom?)>
répertoire contient de 0 à n personne
<!E­LEMENT repertoire (perso­nne­*)>
répertoire contient de 1 à n personne
<!E­LEMENT repertoire (perso­nne­+)>

DTD - ATTLIST (attribut)

Syntaxe
<!A­TTLIST balise attribut ID mode>
sexe est masculin ou feminin
<!ATTLIST personne sexe (masculin|féminin)>
id est un identi­fiant unique
<!A­TTLIST father id ID>
father fait référence à une autre élément
<!A­TTLIST father IDREF>
id est un identi­fiant unique
<!A­TTLIST father id ID>
civilité est une valeur simple
<!A­TTLIST civilite CDATA>
civilité est obliga­toire
<!A­TTLIST civilite CDATA #REQUI­RED>
civilité est facultatif
<!A­TTLIST civilite CDATA #IMPLI­ED>
civilité est par defaut Mr
<!A­TTLIST civilite CDATA  "­Mr">

DTD - ENTITY

Syntaxe entité générale
Remplace un élément
<!ENTITY nom "valeur">
Exemple d'util­isation d'une entité générale
<!E­NTITY apple "Apple">
<telephone>
  <marque>&apple;</marque>
  <modele>iPhone X</modele>
</telephone>
Syntaxe entité paramètre
Remplace un attribut
<!E­NTITY % nom "­val­eur­">
Exemple d'util­isation d'une entité paramètre dans la DTD
<!ENTITY % civs "civ (Mr|Mme)">
<!ATTLIST personne %civs;>
Syntaxe entité externe analysée
(équivaut à include)
<!E­NTITY nom SYSTEM "­URI­">
Exemple d'util­isation d'une entité externe analysée
<!E­NTITY apple SYSTEM "apple.xml">
<telephone>
  &apple;
  <modele>iPhone 4</modele>
</telephone>
Contenu apple.xml
<ma­rqu­e>A­ppl­e</­mar­que>
Les entités sont des alias permettant de réutiliser des inform­ations dans le document