Noeuds : xml xhtml et DOM
Objectifs :
- Expliquer la notion de noeud relativement aux données XML pour mieux en comprendre la combinaison avec DTD, XSLT, XHTML et CSS
Les noeuds XML par l'exemple
Un exemple imagé de noeuds
Une fois définie l'arborescence on peut créer la DTD
Comme vous voyez la DTD reprend l'arborescence. Le noeud père "sites_touristiques" à comme fils "site". Il peut d'ailleurs avoir plusieurs fils "site" de par le * placer à côté. Un noeud "site" contient lui-même plusieurs noeuds, qui sont frère. Ici nous avons : nom*(plusieurs noeuds "nom" possibles), lieu, hauteur, historique, image_principale, source). "#PCDATA" signifie la valeur textuelle de l'élément. Le balise ATTLIST sert à défini l'attribut d'un élément, ici l'attribut "unite" de l'élément "hauteur", ainsi que l'attribut "langue" de l'élément "nom". Vous pourrez examiner ce Tutoriel DTD pour comprendre l'exercice. A partir de l'arborescence ci-dessus on peut créer cette DTD :
<!ELEMENT site(nom*, lieu, hauteur, historique, image_principale, source)> <!ELEMENT nom(#PCDATA)> <!ATTLIST nom langue CDATA #IMPLIED> <!ELEMENT lieu(#PCDATA)> <!ELEMENT hauteur(#PCDATA)> <!ATTLIST hauteur unite CDATA #IMPLIED> <!ELEMENT historique(#PCDATA)> <!ELEMENT image_principale(#PCDATA)> <!ELEMENT source(#PCDATA)> |
Une fois définie l'arborescence on peut créer la DTD
Comme vous voyez la DTD reprend l'arborescence. Le noeud père "sites_touristiques" à comme fils "site". Il peut d'ailleurs avoir plusieurs fils "site" de par le * placer à côté. Un noeud "site" contient lui-même plusieurs noeuds, qui sont frère. Ici nous avons : nom*(plusieurs noeuds "nom" possibles), lieu, hauteur, historique, image_principale, source). "#PCDATA" signifie la valeur textuelle de l'élément. Le balise ATTLIST sert à défini l'attribut d'un élément, ici l'attribut "unite" de l'élément "hauteur", ainsi que l'attribut "langue" de l'élément "nom". Vous pourrez examiner ce Tutoriel DTD pour comprendre l'exercice. A partir de l'arborescence ci-dessus on peut créer cette DTD :
<!ELEMENT site(nom*, lieu, hauteur, historique, image_principale, source)> <!ELEMENT nom(#PCDATA)> <!ATTLIST nom langue CDATA #IMPLIED> <!ELEMENT lieu(#PCDATA)> <!ELEMENT hauteur(#PCDATA)> <!ATTLIST hauteur unite CDATA #IMPLIED> <!ELEMENT historique(#PCDATA)> <!ELEMENT image_principale(#PCDATA)> <!ELEMENT source(#PCDATA)> |