<?xml version="1.0" standalone="yes" ?>
<hello> Hello XML et hello cher lecteur ! </hello>
<?xml version="1.0" standalone="yes" ?>
<!DOCTYPE hello [
<!ELEMENT hello (#PCDATA)>
]>
<hello> Hello XML et hello cher lectrice ! </hello>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE hello SYSTEM "hello.dtd">
<hello> Hello XèMèLè et hello cher lectrice ! </hello>
<!ELEMENT nom_du_tag spécification_contenu>
La spécification du contenu d'un élément contient soit une combinaison d'autres éléments, soit les éléments spéciaux #PCDATA, ANY, EMPTY (voir les exemples ci-après).
Les parenthèses regroupent. Ici: un ou plusieurs (A suivi de B) |
Données (non-interprétés par XML) dans le langage d'encodage courant. |
|
Mot clé qui indique que tous les éléments sont autorisés (déconseillé) |
|
<!DOCTYPE addressBook [
<!ELEMENT addressBook (person)+>
<!ELEMENT person (name,email*)>
<!ELEMENT name (family,given)>
<!ELEMENT family (#PCDATA)>
<!ELEMENT given (#PCDATA)>
<!ELEMENT email (#PCDATA)>
]>
<addressBook>
<person>
<name> <family>Wallace</family> <given>Bob</given> </name>
<email>bwallace@megacorp.com</email>
</person>
<person>
<name> <family>Tuttle</family> <given>Claire</given> </name>
<email>ctuttle@megacorp.com</email>
</person>
</addressBook>
<addressBook>
<address>Derrière le Salève</address>
<person>
<name>
<family>Schneider</family> <firstName>Nina</firstName>
</name>
<email>nina@dks.com</email>
</person>
<name>
<family> Muller </family> </name>
</addressBook>
<!DOCTYPE list [ <!ELEMENT list (recipe+)>
<!ELEMENT recipe (author, recipe_name, meal, ingredients, directions)>
<!ELEMENT author (#PCDATA)> <!ELEMENT recipe_name (#PCDATA)> <!ELEMENT meal (#PCDATA)>
<!ELEMENT ingredients (item+)> <!ELEMENT item (#PCDATA)> <!ELEMENT directions (#PCDATA)> ]>
<!ATTLIST target_tag attr_nom TypeAttribut TypeDef Defaut>
Doit correspondre à 1 ou plusieurs ID attributs (séparés par des blancs) |
|
"Character Data" - Contenu arbitraire, mais normalisé: |
|
<!ATTLIST person gender (male|female) #IMPLIED>
<!ATTLIST form method CDATA #FIXED "POST">
<!ATTLIST list type (bullets|ordered) "ordered">
<!ATTLIST sibling type (brother|sister) #REQUIRED>
attr1_nom TypeAttribut TypeDef Defaut
attr2_nom TypeAttribut TypeDef Defaut
<!ATTLIST person
gender (male|female) #IMPLIED
nom CDATA #REQUIRED
prenom CDATA #REQUIRED
relation (brother|sister) #REQUIRED
>
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT addressBook (person)+>
<!ELEMENT person (name,email*)>
<!ATTLIST person id ID #REQUIRED>
<!ATTLIST person gender (male|female) #IMPLIED>
<!ELEMENT name (#PCDATA|family|given)*>
<!ELEMENT family (#PCDATA)>
<!ELEMENT given (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT link EMPTY>
<!ATTLIST link manager IDREF #IMPLIED subordinates IDREFS #IMPLIED>
<!DOCTYPE addressBook SYSTEM "ab.dtd">
<addressBook>
<person id="B.WALLACE" gender="male">
<name>
<family>Wallace</family> <given>Bob</given>
</name>
<email>bwallace@megacorp.com</email>
<link manager="C.TUTTLE"/>
</person>
<person id="C.TUTTLE" gender="female">
<name>
<family>Tuttle</family> <given>Claire</given>
</name>
<email>ctuttle@megacorp.com</email>
<link subordinates="B.WALLACE"/>
</person>
</addressBook></pre>
<!ENTITY nom_du_tag "contenu">
<!ENTITY tecfaUnit "Unité de technologies de formation et apprentissage">
<!ENTITY tecfaDesc SYSTEM "http://tecfa.unige.ch/../tecfa_description.xml">
<!ENTITY pm "Patrick Mendelsohn">
<!ENTITY acirc "Â">
<!ENTITY espace " ">
<!ENTITY copyright "©">
<!ENTITY explication SYSTEM "project1a.xml">
Ensuite, on fait une référence du style "&nom_paramètre;":
<para> ± sort du château <para>
va donner:
<para> Patrick Mendelsohn sort du château,
s'arrête devant le panneau et lit:&espace;
<citation> &explication </citation>
</para>
<!ENTITY % stamp '
id ID #IMPLIED
creation-day NMTOKEN #IMPLIED
.......
mod-by NMTOKEN #IMPLIED
version NMTOKEN #IMPLIED
status (draft|final|obsolete) #IMPLIED
approval (ok|not-ok|so-so) #IMPLIED
main-author CDATA #IMPLIED
'
>
Usage: on fait une référence du style "%nom_paramètre;":
<!ELEMENT main-goal (title, content, (after-thoughts)?, (teacher-comments)?)>
<!ATTLIST main %stamp; >