Easy-Micro

ESPACEMEMBRE DTD XML
DTD élaborée


XML DTD Élaborée (avec fichier CSS)
Exemple de DTD élaborée (produits.dtd)
<!ELEMENT produits (articles+)>
<!-- + pour plusieurs articles -->
<!ELEMENT articles (nom,num,fabricant+,prix+)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT num (#PCDATA)>
<!ELEMENT fabriquant (entreprise,ville?)>
<!ELEMENT entreprise (#PCDATA)>
<!ELEMENT ville (#PCDATA)>
<!ELEMENT prix (#PCDATA)>
<!ATTLIST prix client (commerce|prive) #REQUIRED>

Le "+" signifie que le nœud "article" comporte plusieurs éléments.
Un "?" voudrais dire facultatif (par exemple: fabricant?).
ATTLIST signifie "liste d'attribut". Ici l'attribut "client" pour l'élément "prix" peut recevoir "commerce" ou "prive".
#REQUIRED pour obligatoire, #IMPLIED pour facultatif, #FIXED pour paramètre obligatoire.
Exemple : <!ATTLIST prix client (commerce|prive) #FIXED "prive">
L'attribut "prive" apparaitra dans le résultat final alors qu'il ny a rien écrit dans le document XML.
Attention: #REQUIRE est le minimum requis, sinon erreur de syntaxe.

Et le fichier XML corespondant (produits.xml)
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="style_pour_produit.css" type="text/css"?>
<!DOCTYPE produits SYSTEM "produits.dtd">
<produits>
<articles>
   <nom>PC HP</nom>
   <num>32987-45</num>
   <fabriquant>
      <entreprise>HP SA</entreprise>
      <ville>Bordeaux</ville>
   </fabriquant>
   <prix client="prive">600</prix>
   <prix client="commerce">400</prix>
</articles>
<articles>
   <nom>PC Mac</nom>
   <num>3489-23</num>
   <fabriquant>
      <entreprise>Mac SA</entreprise>
      <ville>Stasbourg</ville>
   </fabriquant>
   <prix client="prive">400</prix>
   <prix client="commerce">300</prix>
</articles>
<articles>
   <nom>PC Toshiba</nom>
   <num>2346-78</num>
   <fabriquant>
      <entreprise>Toshiba SA</entreprise>
      <ville>Tokyo</ville>
   </fabriquant>
   <prix client="prive">500</prix>
   <prix client="commerce">400</prix>
</articles>
</produits>

Et le fichier CSS correspondant (style_pour_produit.css)
produits {
font-family: Verdana, Arial;
font-size:12pt;
color:#000099;
line-height: 1.2;}

articles {
display: block;
background-color: silver;
margin: 10px;
padding: 8px;
width: 315px;}

nom {
display: block;
background-color: white;
border-style: solid;
border-width: 1px;
width: 300px;}

fabriquant {
display: block;
font-style: italic; }

num, prix { color: red; }

La présence du DTD est reconnue, mais il ne se passe rien de plus... Bouuu !
Pas de panique ! La mise en page XML est détaillée dans la partie suivante ...


< Page précédente DTD XML