Angebault Baptiste le 30/11/2009 Licence professionnelle flux numérique Compte rendu du TP3 (XML/XSL)!: le CV Xml et xsl? XML est un langage de structuration des données, et non de représentation des données. Ainsi XSL (extensible StyleSheet Language) est un langage pour effectuer la représentation des données de documents XML. XSL est lui-même défini avec le formalisme XML, cela signifie qu'une feuille de style XSL est un document XML bien formé. XSL est un langage permettant de définir des feuilles de style pour les documents XML. Un document XSL étant un document XML, il commence obligatoirement par la balise suivante : <?xml version="1.0" encoding="iso-8859-1"?> D'autre part, toute feuille de style XSL est comprise entre les balises <xsl:stylesheet...> et </xsl:stylesheet>. La balise «xsl:stylesheet» encapsule des balises «xsl:template» définissant les transformations à faire subir à certains éléments du document XML. Manipulations réalisées dans le logiciel Oxygène au cours du Tp: - Ouvrir le fichier «cv.xml» - Ouvrir le fichier «cv.html» corriger - Crréer un nouveau document «xsl-cv.xsl» - Copier le contenu du fichier «cv.html corriger», dans le fichier «xsl-cv.xsl» - Les template sont des balises XSL qui permettent de définir des opérations à réaliser sur certains éléments du document XML, en utilisant la page XSL. Le navigateur reçoit les informations du fichier «cv.xml», et celui-ci sait qu il doit aller chercher certaines informations qui sont indiquées dans le fichier sont contenant dans le fichier «xsl-cv.xsl» - L'attribut "match" de la balise <xsl:template> permet de définir le ou les éléments du document XML sur lesquels s'applique la transformation.
- Ensuite, dans le document xsl, on remplace par exemple le prénom «Fleur» par la ligne : < xsl :value-of selecte =«identite/etatcivil/prenom/> correspondant au prénom «Baptiste». Cet éléments : < xsl :value-of selecte =«identite/etatcivil/prenom/> permet de remplacer le prénom «Fleur» par la valeur de la balise prenom («Baptiste»). Par la suite nous avons procédé à ces opérations pour divers autres éléments. - Par la suite, on a réalisé une présentation qui sert à répéter les informations concernant les diplômes, sans devoir tout recommencer pour chaque information. Cette opération réalise une boucle. Pour cela nous avons utilisé la balise «for each»
Dans la feuille de style xsl, l élément value-of prend pour valeur d attribut «anneobt», «niveau», et «select» a chaque fois qu il y a formation/diplôme dans le doc xml. Le contenu de cet attribut se trouve dans le document xml. On copie alors le «modulo» sous la nouvelle balise <xsl :for-each select = «formation/diplôme»> <xsl :choose> <xsl :when test = «position() mod 2 = 0»> #bbbbbbb modulo </xsl :when> <xsl :otherwise> #ddddddd modulo </xsl :otherwise> </xsl :choose> Ceci indique que si le nombre de fois du modulo est impaire alors le texte sera de la couleur : #bbbbbbb. Sinon, si ce nombre de fois est paire alors, le texte sera de la couleur : #ddddddd. Le faite modulo sera recopié autant de fois que l opération doit être réalisée. Par la suite nous avons réaliser les mêmes opérations pour «experience professionnelle»
On remarque que l on à utilisé «@type», pour réaliser la transformation pour indiquer un attribut caractéristique. Voilà la page web :
Par la suite : - On a copié les fichiers xml et xsl pour les modifier. Les nouveaux fichiers sont renommés : «cv.xml» et «xsl-cv.xsl». le fichier xsl s applique toujours à l arbre du fichier xml. On met en lien le nouveau xsl avec le nouveau fichier xml. - On a remplacé les balises <for each> par les balises «template». Les balises <template match> sont utilisée pour indiquer ou se situe - On utilise les balises <apply-template> pour indiquer que des informations sont à récupérer plus loin. La balise < template match> situé en dehors de la l arbre html, indique que le contenue de cette balise fait référence à la balise <apply-template> portant le même nom. Dans cette balise se trouve le contenue désiré. On effectue cette opération plusieurs fois dans la page, afin de remplacer toutes les balises <for each> qui sont très peut utilisées dans le langage xml.
- Dans un deuxième temps on va remplacer, certaines balises «value-of select» par des balises template???? voir la suite avec thomas