XML et DTD - Partie (1)

. 8/12/2011
  • Agregar a Technorati
  • Agregar a Del.icio.us
  • Agregar a DiggIt!
  • Agregar a Yahoo!
  • Agregar a Google
  • Agregar a Meneame
  • Agregar a Furl
  • Agregar a Reddit
  • Agregar a Magnolia
  • Agregar a Blinklist
  • Agregar a Blogmarks


DTD : Définition

* La structure arborescente du document XML :
   - nom des balises,
   - imbrications des balises,
   - caractère obligatoire ou facultatif des balises et de leur ordre de succession…
      -> peut être déclarée formellement dans le corps du document XML ou dans un fichier à part.


* Cette déclaration s'appelle une Définition de Type de Document (DTD).

* À noter que son emploi est facultatif.

DTD : Rôle ...


* Le rôle de la DTD est de définir toutes les balises que l'on pourra utiliser pour créer des documents.
   - En XML on peut créer toutes sortes de balises; si l'on veut que tous nos documents exploitent la même structure, il convient de parler le même langage, donc de définir les balises dans une DTD.


* Un document XML est dit valide (Valid) s'il respecte les règles de la DTD.

* Un document valide (avec sa DTD) est obligatoirement bien formé.

DTD :Utilisation

* La DTD dans sa forme la plus courante, est externe au document, ce qui permet de la réutiliser pour créer d'autres documents qui devront avoir la même structure.

* L'utilisation d'une DTD doit être indiquée dans le document XML

* Syntaxe:
    <!DOCTYPE root-element SYSTEM "filename.dtd">

    root-element est l'élément racine (de début du document XML);
SYSTEM est le mot clé de la déclaration indiquant une DTD externe au document XML filename est l'URL du nom du fichier qui contient la DTD.


DTD : Exemple d'utilisation

Exemple 1:

<?xml version="1.0"?>
< !DOCTYPE note [
   <!ELEMENT note (a,de,type,message)>
   <!ELEMENT a (#PCDATA)>
   <!ELEMENT de (#PCDATA)>
   <!ELEMENT type (#PCDATA)>
   <!ELEMENT message (#PCDATA)>
]>



<note>
    <a>Zakaria</a>
    <de>Papa</de>
    <type>Rappel</type>
    <message>N’oublie pas de ramener du pain</message>
< /note>


Exemple 2:

<?xml version="1.0" encoding="ISO-8859-1" ?>
< !DOCTYPE note SYSTEM "note.dtd">
< note>
   <a>Zakaria</a>
   <de>Papa</de>
   <type>Rappel</type>
   <message>N’oublie pas de ramener du pain</message>
< /note>



<!ELEMENT note (a,de,type,message)>
< !ELEMENT a (#PCDATA)>
< !ELEMENT de (#PCDATA)>
< !ELEMENT type (#PCDATA)>
< !ELEMENT message (#PCDATA)>


Exemple 3:

<?xml version="1.0" encoding="ISO-8859-1" ?>
< !DOCTYPE livres SYSTEM "livres.dtd">
< livres>
   <livre>
       <titre>XML & JAVA</titre>
       <isbn>2-7440-0628-9</isbn>
       <auteurs>
             <nom_auteur>Joey STAMP</nom_auteur>
             <nom_auteur>Patrick RONDA</nom_auteur>
       </auteurs>
       <description>

             Ressources d'Experts HTML 4,
       </description>
       <prix Can="$70.99"/>
   </livre>
< /livres>