« Noeuds : xml xhtml et DOM » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Ligne 70 : Ligne 70 :
Comme vous voyez la DTD reprend l'arborescence. Le nœud père <span style="color:#FF0000">"sites_touristiques"</span> à comme fils <span style="color:#FF0000">"site"</span>. Il peut d'ailleurs avoir plusieurs fils <span style="color:#FF0000">"site"</span> de par le * placé à côté. Un nœud <span style="color:#FF0000">"site"</span> contient lui-même plusieurs nœuds, qui sont frères. Ici nous avons : <span style="color:#FF0000">nom*</span>(plusieurs nœuds <span style="color:#FF0000">"nom"</span> possibles), <span style="color:#FF0000">lieu, hauteur, historique, image_principale, source)</span>. <span style="color:#FF9900">"#PCDATA"</span> signifie <span style="color:#FF9900">la valeur textuelle de l'élément</span>.  
Comme vous voyez la DTD reprend l'arborescence. Le nœud père <span style="color:#FF0000">"sites_touristiques"</span> à comme fils <span style="color:#FF0000">"site"</span>. Il peut d'ailleurs avoir plusieurs fils <span style="color:#FF0000">"site"</span> de par le * placé à côté. Un nœud <span style="color:#FF0000">"site"</span> contient lui-même plusieurs nœuds, qui sont frères. Ici nous avons : <span style="color:#FF0000">nom*</span>(plusieurs nœuds <span style="color:#FF0000">"nom"</span> possibles), <span style="color:#FF0000">lieu, hauteur, historique, image_principale, source)</span>. <span style="color:#FF9900">"#PCDATA"</span> signifie <span style="color:#FF9900">la valeur textuelle de l'élément</span>.  


Le balise <span style="color:#009933>ATTLIST</span> sert à définir l'attribut d'un élément, ici l'attribut <span style="color:#009933>"unite"</span> de l'élément <span style="color:#FF9900>"hauteur"</span>, ainsi que <span style="color:#009933>l'attribut "langue"</span> de l'élément <span style="color:#FF9900>"nom"</span>.
Le balise <span style="color:#009933">ATTLIST</span> sert à définir l'attribut d'un élément, ici l'attribut <span style="color:#009933>"unite"</span> de l'élément <span style="color:#FF9900>"hauteur"</span>, ainsi que <span style="color:#009933>l'attribut "langue"</span> de l'élément <span style="color:#FF9900>"nom"</span>.


Vous pourrez examiner ce [[Tutoriel DTD]] pour comprendre l'exercice. A partir de l'arborescence ci-dessus on peut créer cette DTD :
Vous pourrez examiner ce [[Tutoriel DTD]] pour comprendre l'exercice. A partir de l'arborescence ci-dessus on peut créer cette DTD :

Version du 25 octobre 2009 à 20:50

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

Chutes5.jpg

Définition

Si l'on veut créer une page XML ou XHTML avec des informations sur des sites touristiques comme dans l'exemple de gauche, il est pertinent au préalable d'en organiser la structure en nœuds. Un nœud est un composant particulier d'un document XML et par la même XHTML. Regardez les éléments colorés dans l'exemple, un nœud peut-être :

- un élément

- un attribut

- ou un contenu textuel.

La notion d'arborescence XML

Une arborescence XML est composée uniquement de nœuds, chacun étant relié l'un à un autre. Comme on le voit ils sont organisés en hiérarchie :

- Le sommet de l'arbre est nommé racine, il est représenté par la barre oblique tout en haut, ici c'est par exemple TOURISME, il contient tous les autres nœuds, notamment "Sites touristiques" dans l'exemple :

- "Sites touristiques" est le nœud père du nœud "Site";

- Le nœud "Site" a lui-même (donc contient) sept nœuds fils : nom, nom, lieu, hauteur, historique, image_principale et source);

- Chacun étant le frère de l'autre. Chacun des ces nœuds étant des descendants des nœuds "Site" et "Sites touristiques" et de "TOURISME" la racine;

- Il y a des éléments comme "Nom" qui ont des nœuds attributs comme "Langue";

- Bien sûr à l'intérieur d'un élément il peut y avoir du "texte".

Une fois définie l'arborescence on peut créer la DTD

Chutes5.jpg

Comme vous voyez la DTD reprend l'arborescence. Le nœud père "sites_touristiques" à comme fils "site". Il peut d'ailleurs avoir plusieurs fils "site" de par le * placé à côté. Un nœud "site" contient lui-même plusieurs nœuds, qui sont frères. Ici nous avons : nom*(plusieurs nœuds "nom" possibles), lieu, hauteur, historique, image_principale, source). "#PCDATA" signifie la valeur textuelle de l'élément.

Le balise ATTLIST sert à définir 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 sites_touristiques(site*)>

<!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 crée la DTD l'on peut créer les données XML

Chutes5.jpg
   

        <TOURISME>

              <sites_touristiques>

                 <site>

                     <nom langues="Français">Chutes de Trümmelbach </nom>

                     <lieu>Trümmelbach, Suisse </lieu>

                     <hauteur unité="mètres">32</hauteur> 

                     <historique> </historique>  

                     <image_principale> </image_principale>

                     <source>  </source> 

                </site>


             </sites_touristiques>


        </TOURISME>


Une fois composées le données XML, il est possible de transformer les données XML en données XHTML par l'intermédiaire de XSLT

Chutes5.jpg
   

        <TOURISME>

              <?xml version="1.0" encoding="ISO-8859-1"?>
              <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
              <xsl:output method="html" />
              <xsl:template match="TOURISME">

              <html>
      			<head>
        		<title>Page Travaux STAF</title><style type="text/css">h1 {font-size:25px;color:#FFFFFF;}</style>
			</head>
	      <body> 

                       <h1><xsl:apply-templates select="nom"/></h1>

             </body>		

             </html>
	

                      </xsl:template>

	     <xsl:template match="site">

                      <xsl:value-of select="nom"/>

            </xsl:template>
	
</xsl:stylesheet>

     


XHTML : la notion de noeuds

Arbre xhtml.jpg