Balise |
Syntaxe |
DOCTYPE |
- Définition externe :
<!DOCTYPE nom_de_la_balise_définie SYSTEM "url du fichier DTD">
- Définition interne :
<!DOCTYPE nom_de_la_balise_définie [ ... contenu de la dtd ... ]>
|
Déclare la DTD d'un document XML. Le nom de la balise figurant après DOCTYPE doit correspondre à l'élément unique de premier niveau du fichier XML.
Lorsque la DTD est située dans un fichier externe, celui commence par une déclaration XML :
<?xml version="1.0" encoding="utf-8"?>
|
ELEMENT |
<!ELEMENT nom (contenu)>
|
Déclare une balise.
Le contenu décrit soit le type de données, soit les balises imbriquées :
- EMPTY
- La balise ne pourra pas avoir de contenu (ce qui n'empêche pas les attributs). Exemple : <personne nom="Paul" />
- ANY
- Tout contenu (texte et/ou autres balises) sera accepté
- Mixed
- Un type d'élément a un contenu mixte quand des éléments de ce type peuvent contenir des données textuelles, parsemées, le cas échéant, de sous-éléments. Dans ce cas, les types des sous-éléments peuvent être contraints mais pas leur ordre ni leur nombre. Le mot-clef
#PCDATA doit apparaître en premier.
Exemple : <!ELEMENT nom (#PCDATA | BALISE1 | BALISE2)*> (* obligatoire)
- Sous-éléments
- Un type d'élément a un contenu élémentaire pur quand des éléments de ce type ne peuvent contenir que des sous-éléments, (pas de données textuelles). L'ordre indiqué doit être strictement respecté.
Exemple : <!ELEMENT nom (BALISE1+, BALISE2*, BALISE3?)>
Spécification d'exigence : caractère présent à droite de son objet :
- pas d'indication
- 1 et un seul (élément requis)
- +
- 1 ou plus
- *
- 0 ou n
- ?
- 0 ou 1 (élément facultatif)
- |
- L'un ou l'autre des contenus présents de chaque coté
- ,
- L'un et l'autre des contenus présents de chaque coté (dans cet ordre)
- ()
- Possibilité d'imbriquer des parenthèses; Le caractère présent à droite de la parenthèse fermante s'applique à tout le contenu.
Note : un nom d'élément ne peut être déclaré qu'une seule fois.
|
ATTLIST |
- Un par un
<!ATTLIST element attribut type défaut>
- Multiple
<!ATTLIST element attribut type defaut attribut type defaut (...) >
|
Déclare un attribut pour l'élément spécifié. La valeur par défaut permet également de spécifier une exigence de réquisition.
Types de données :
CDATA
- Chaîne de caractères.
ID
- Clef de l'élément. Dans un document, une valeur d'ID ne peut figurer qu'une seule fois, même dans plusieurs éléments.
IDREF
- Référence sur un
ID . Il doit y avoir dans le document un élément unique possédant un attribut de type ID dont la valeur est celle spécifiée.
IDREFS
- Plusieurs références sur
ID séparées par des blancs.
ENTITY
- Nom d'une entité générale non analysable (déclarée dans la DTD).
ENTITIES
- Plusieurs noms d'entités générales non analysables séparés par des blancs.
NMTOKEN
- Valeur ne contenant que des lettres, des chiffres ou des caractères
. (point), _ (underscore), - (tiret) ou : (deux-points).
NMTOKENS
- Liste de
NMTOKEN séparés par des blancs.
Enumération
- Liste de valeurs (de type
NMTOKEN ) énumérées entre parenthèses, séparées par le signe | (ou).
NOTATION
- Liste de noms de notations (précédée du mot "NOTATION") définies dans la DTD par la balise
NOTATION .
Réquisition et Valeur par défaut :
"Valeur"
- L'attribut n'est pas obligatoire et la valeur spécifiée est la valeur par défaut.
#IMPLIED
- L'attribut n'est pas obligatoire et aucune valeur par défaut n'est fixée.
#REQUIRED
- L'attribut est obligatoire et la valeur par défaut n'est pas fixée.
#FIXED "Valeur"
- Valeur fixée non modifiable. La balise peut omettre l'attribut. L'indication d'une autre valeur provoque une erreur.
|
ENTITY |
- Entités Générales
- Utilisables dans le document XML et dans la DTD
- Interne
<!ENTITY nom "valeur">
- Externe
<!ENTITY nom SYSTEM "URL ressource">
- Non Analysable
<!ENTITY nom SYSTEM "URL ressource" NDATA type>
- Entités Paramètres
- Utilisables exclusivement dans la DTD
- Interne
<!ENTITY % nom "valeur">
- Externe
<!ENTITY % nom SYSTEM "URL ressource">
|
Déclare le nom d'une variable qui sera remplacée par son contenu sur utilisation de la syntaxe :
&nom; (entités générales)
%nom; (entités paramètres)
Document spécifiquement consacré aux entités
|
NOTATION |
<!NOTATION gif PUBLIC "nom" "ressource">
<!NOTATION gif SYSTEM "ressource">
|
Identification des formats de données non XML désignées par des entités.
Notation dans Entity.html
|
INCLUDE IGNORE |
<![INCLUDE[texte à inclure]]>
<![IGNORE[texte à ne pas considérer]]>
|
Les clauses IGNORE et INCLUDE permettent de conditionner l'insertion de définitions à un paramètre, généralement une entité.
Exemple d'utilisation :
- Définition des entités paramètres :
<!ENTITY % français "INCLUDE">
<!ENTITY % anglais "IGNORE">
- Définition des déclarations concernées
<![%français;[<!ELEMENT MARCHE ANY>]]>
<![%anglais;[<!ELEMENT WALK ANY>]]>
- L'inversion des entités paramètres permet de modifier le fonctionnement de la DTD.
- Le codage
%français; est remplacé par le contenu de l'entité (INCLUDE ). L'inclusion se fait ou non en fonction de l'entité.
|
EXEMPLE |
DTD
<!NOTATION gif PUBLIC "image gif" "gif viewer">
<!NOTATION jpg SYSTEM "jpg image">
<!ELEMENT balise ANY>
<!ATTLIST balise cdata CDATA #REQUIRED>
<!ATTLIST balise fixed CDATA #FIXED "fixe">
<!ATTLIST balise id ID #REQUIRED>
<!ATTLIST balise idref IDREF "A">
<!ATTLIST balise idrefs IDREFS #REQUIRED>
<!ATTLIST balise entity ENTITY #IMPLIED>
<!ATTLIST balise entities ENTITIES #REQUIRED>
<!ATTLIST balise nmtoken NMTOKEN #REQUIRED>
<!ATTLIST balise nmtokens NMTOKENS #REQUIRED>
<!ATTLIST balise enum (abc | def | ghi) "def">
<!ATTLIST balise notation NOTATION (gif | jpg) #REQUIRED>
|
XML
|
cdata="du texte" |
fixed="fixe" |
id="JEAN" |
idref="JEAN" |
idrefs="JEAN JACQUES PAUL" |
entity="photo" |
entities="photo image logo" |
nmtoken="fr" |
nmtokens="fr-FR fr-CA de en it" |
enum="abc" |
notation="gif"> |
|
|