La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

XML Stylesheet Language

Présentations similaires


Présentation au sujet: "XML Stylesheet Language"— Transcription de la présentation:

1 XML Stylesheet Language
XSL XML Stylesheet Language UP Web Année universitaire

2 Objectifs Comprendre le rôle de XSL Apprendre les différentes règles de transformations XSLT.

3 Plan Introduction Présentation de XSL Processeur XSLT
Définition des règles XSLT Application des règles XSLT Transformation XSLT avec navigateur Web Transformation XSLT avec l’API JAXP Exemples de transformations.

4 Introduction: feuilles de style
les feuilles de styles (style-sheets) permettent de: Préparer/arranger un contenu pour une « présentation ». Définir le « layout » (mise en forme, formattage). l’utilité des style-sheets est donc de: Séparer le contenu de la présentation. Rationaliser le travail (un style-sheet pour beaucoup de documents). Différents langages: Cascading Style Sheets (CSS). XML Stylsheet Language (XSL). Les feuilles de styles (style-sheets) permettent de: –préparer/arranger un contenu pour une "présentation" –définir le "layout" (mise en forme, formattage) •L’utilité des style-sheetsest donc de: –séparer contenu et présentation –rationaliser le travail (un style-sheetpour beaucoup de documents) •Différents langages –CascadingStyle Sheets(CSS) –Extensible Style Language(XSL)

5 Présentation de XSL XML Stylesheet Language
Langage de programmation conçu pour transformer des documents XML en d'autres formats comme HTML ou des pages HTML. XSL est un dialecte XML Un document XSL est un document XML XSL est une recommendation W3C XSL Version 2.0 XSL utilise intensivement XPath -7-

6 Présentation de XSL XSL propose deux fonctionnalités distinctes XSLT et XSL-FO. XML Stylesheet Language XSLT XSLTransformation un langage de transformation de documents XML XSL-FO XSL- Formatting Objets un langage permettant de formater l'affichage et/ou l'impression d'un document XML. XSLT permet de transformer la structure des éléments XML. Le processeur XSLT (composant logiciel chargé de la transformation) crée un structure logique arborescente à partir du document XML et lui fait subir des transformations selon les règles XSLT pour produire un arbre résultat représentant, par exemple, la structure d'un document HTML. Les composants de l'arbre résultat sont appelésobjets de flux. XSLT XSL-FO

7 Principe de XSL Transformation
Arborescence initiale Arborescence modifiée XSLT processor resultat.xml resultat.html source.xml stylesheet.xsl Une feuille de style XSLT contient des règles qui décrivent des transformations. Ces règles sont appliquées à un document source XML pour obtenir un nouveau document résultat. Cette transformation est réalisée par un programme appelé processeur XSLT.

8 Exemple XML HTML XSLT processor <?xml version="1.0"?>
<recette> <titre>Crème au beurre</titre> <categorie>Dessert</categorie> <ingredients> <ingredient> <nom>beurre</nom> <quantite unite="grammes"> 250 </quantite> </ingredient> <nom>sucre</nom> <nom>oeuf</nom> <quantite> 8 </ingredients> </recette> HTML XSLT processor

9 Processeur XSLT Permet d’analyser une feuille de style XSLT et un document XML source. Permet de transformer le document XML d’entrée en un document de sortie différent en appliquant les règles définies dans la feuille de style. en se basant sur les expressions Xpath décrites dans la feuille de style.

10 Exemples de processeur XSLT
Plusieurs types de processeurs XSLT sont disponibles : Des processeurs intégrés dans des navigateurs web. Des processeurs intégrés dans des serveurs web ou d’applications. Apache Tomcat Des processeurs standalone Xalan: Par la fondation Apache. MSXML: Par Microsoft. Saxon: Par Michael Kay.

11 Structure d’un document XSL
La racine d'un document XSLT est xsl:stylesheet Fichier XSLT <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl=" </xsl:stylesheet > Une feuille de style XSLT minimaliste applique les règles par défaut. La règle par défaut recopie les contenus textuels de ces élément Association d'une feuille XSL à un document XML Fichier XML <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="fichier.xsl"?>

12 Définition des règles XSLT
xsl:output Se place directement après <xs:stylesheet> et permet de préciser le format de sortie. <xsl:output method=“HTML” version=“…” indent=“yes“ encoding=“…”> </xsl:output> L'attribut method permet de préciser le format. Les valeurs possibles sont: texte, xml ou html. L'attribut version permet de définir la version de la méthode de sortie (xml 1.0, html 4.01…). L'attribut indent permet de définir si les paragraphes de sortie doivent être décalés ou non. Les valeurs possibles sont: yes ou no. L'attribut encoding permet de préciser le jeu de caractères utilisé pour la sortie.

13 Définition des règles XSLT
xsl:template Un programme XSLT est composé d'un ensemble de règles regroupées dans des templates Un modèle (template) de transformation est défini dans l’élément xsl:template. <xsl:template name="ingredientTemplate" match="ingredient"> règles de la template </xsl:template> L'attribut name donne le nom du modèle. L'attribut match contient une expression XPath indiquant les éléments sur lesquels ce modèle s'applique <xsl:template match="ingredients|preparation|cuisson">

14 Définition des règles XSLT
xsl:value-of Permet d’extraire la valeur d'un élément <xsl:template match="ingredient"> <xsl:value-of select="nom"/> <xsl:value-of select="quantite"/> <xsl:value-of </xsl:template> L'attribut select contient une expression XPath de l’élément à extraire

15 Définition des règles XSLT
Les structures de contrôle xsl:if Permet de réaliser un test Cet élément ne propose pas d'alternative car il n'existe pas d'élément xsl:else <xsl:template match="recette"> <xsl:if test="categorie=‘ Dessert'" > Ceci est un dessert </xsl:if> </xsl:template> La condition du test est une expression XPath contenue dans l'attribut test Si le résultat est true, le contenu de l'élément xsl:if est pris en compte. Sinon, le contenu de l'élément xsl:if est ignoré

16 Définition des règles XSLT
Les structures de contrôle xsl:choose Permet de réaliser plusieurs tests consécutivement <xsl:template match="recette"> <xsl:choose> <xsl:when test="categorie=Dessert"> Ceci est un dessert </xsl:when> <xsl:when test="categorie=Entree"> Ceci est une entrée <xsl:otherwise> Ceci est un plat </xsl:otherwise> </xsl:choose> </xsl:template> Cet élément contient des éléments xsl:when et éventuellement un élément xsl:otherwise. Chacun des éléments xsl:when possède un attribut test contenant une expression XPath servant de condition.

17 Définition des règles XSLT
Les structures de contrôle xsl:for-each Permet de réaliser des boucles en XSLT <xsl:template match="recette"> <xsl:for-each select="ingredients/ingredient"> <xsl:value-of select="nom"/> </xsl:for-each> </xsl:template> L'attribut select contient une expression Xpath pour déterminer la liste des objets à traiter. Le contenu de l'élément xsl:for-each est exécuté pour chacun des objets de la liste.

18 Définition des règles XSLT
Variables xsl:variable Créer des variables dans XSLT: <xsl:variable name=nom select= valeur/> name (obligatoire): spécifie le nom de la variable. select: spécifie la valeur de la variable: peut être une valeur constante ou une expression Xpath. <xsl:variable name=" unite_qte" select=" ml" /> <xsl:variable name=" unite_qte" select=" " /> L’appel de la variable se fait avec l’ajout du $ avant son nom. <xsl:value-of select= " $unite_qte " />

19 Application des règles XSLT
Application implicite xsl:apply-templates Permet d’appliquer de règles sur les nœuds sélectionnés par son attribut select qui contient une expression XPath. Appel récursif du template <xsl:template match="recette"> <xsl:apply-templates select="//ingredient"/> </xsl:template> <xsl:template match="ingredient"> <xsl:value-of select="nom"/> <xsl:value-of select="quantite"/> <xsl:value-of L'attribut match permet à la règle d'être invoquée implicitement par un élément xsl:apply-templates

20 Application des règles XSLT
Application explicite xsl:call-template Permet d’appliquer les règles du template dont le nom est donné par l'attribut name. <xsl:template match="recette"> <xsl:for-each select="ingredients/ingredient"> <xsl:call-template name="ingredient"/> </xsl:for-each> </xsl:template> <xsl:template name="ingredient"> <xsl:value-of select="nom"/> <xsl:value-of select="quantite"/> <xsl:value-of l'attribut name permet à la règle d'être appelée explicitement par un élément xsl:call-template

21 Application des règles XSLT
Paramètres xsl:param L’élément xsl:param permet de passer des paramètres aux règles. <xsl:param name=nom select=expression/> name: nom du paramètre. select (optionnel): expression Xpath qui donne la valeur par défaut (convertie en chaîne de caractère) <xsl:template name="show_title" match="/">   <xsl:param name="title" />   <xsl:for-each select="catalog/cd">     <p>Title: <xsl:value-of select="$title" /></p>   </xsl:for-each> </xsl:template> Si l’attribut select est absent, la valeur par défaut est le contenu de l’élément. <xsl:param name=" texte">salut</xsl:param>

22 Application des règles XSLT
Passage de paramètres xsl:with-param Cet élément suit un call-template ou un apply-templates. <xsl:call-template name="show_title">     <xsl:with-param name="title" />   </xsl:call-template>

23 Application des règles XSLT
Tri xsl:sort xsl:sort permet de trier des éléments avant de les traiter L'élément xsl:sort doit être le premier fils des éléments xsl:apply-templates, xsl:call-template ou xsl:for-each <xsl:template match="recette"> <xsl:apply-templates select="ingredients/ingredient"> <xsl:sort select="nom" order="descending"/> </xsl:apply-templates> </xsl:template> L'attribut select permet d’indiquer le critère pour trier ses différents éléments. L’attribut order permet d’indiquer l’ordre de tri: ascending ou desending.

24 Transformation XSLT avec un navigateur Web
Pour tester une transformation XSLT avec un navigateur Web, il suffit de référencer le document XSL au niveau du document XML: Ensuite il suffit d’ouvrir le document XML à l’aide d’un navigateur Web.

25 Transformation XSLT avec l’API JAXP
JAXP (Java Api for XML Parsing) est l’API Java qui: permet la création, la manipulation et le traitement des fichiers XML. Permet d’analyser les fichiers XML selon les normes DOM ou SAX, et de les transformer à l’aide de feuilles de style XSL. Pour la transformation XSLT, JAXP utilise le processeur XALAN. SAX: Simple API for XML DOM: Document Object Model

26 Transformation XSLT avec l’API JAXP
Feuille de style définissant les règles de transformation Document XML cible Document HTML à générer

27 Exemple1: Transformer .XML en format HTML
<?xml version="1.0"?> <ecole> <etudiant> <id>1</id> <nom>ayed</nom> <prenom>aymen</prenom> <cin> </cin> </etudiant> <id>2</id> <nom>gharbi</nom> <prenom>wael</prenom> <cin> </cin> <id>3</id> <nom>ben yedder</nom> <prenom>alia</prenom> </ecole> Le document XML -18-

28 Exemple1: Transformer .XML en format HTML
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> <html><body> <h2>Etudiants</h2> <table border="1"> <tr bgcolor="#9acd32"><th>Nom</th><th>Prenom</th></tr> <xsl:for-each select="ecole/etudiant"> <tr> <td><xsl:value-of select="nom"/></td> <td><xsl:value-of select="prenom"/></td> </tr> </xsl:for-each> </table> </body></html> </xsl:template> </xsl:stylesheet> Le document XSL -18-

29 Exemple1: Transformer .XML en format HTML
Le document HTML résultat -18-

30 Exemple2: Transformer .XML en format XML
<?xml version="1.0" encoding="UTF-8"?> <personnes> <personne username=« CA1"> <nom>Chaaben</nom> <prenom>Ahmed</prenom> </personne> <personne username="MA1"> <nom>Makni</nom> <prenom>Ahlem</prenom> </personnes> Le document XML -18-

31 Exemple2: Transformer .XML en format XML
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:output method="xml" indent="yes"/> <xsl:template match="/personnes"> <root> <xsl:apply-templates select="personne"/> </root> </xsl:template> <xsl:template match="personne"> <name <xsl:value-of select="nom" /> </name> </xsl:stylesheet> Le document XSL -18-

32 Exemple2: Transformer .XML en format XML
<?xml version="1.0" encoding="UTF-8"?> <root> <name username=„CA1">Chaaben</name> <name username="MA1">Makni</name> </root> Le document XML résultat -18-

33 En résumé L'application d'une feuille de style XSLT à un document
XML permet de transformer son arborescence en une autre arborescence. XSL se base sur le langage Xpath pour définir et adresser les éléments du document XML. Les règles de transformation XSLT sont regroupés dans des templates. La template de la racine racine est la première à être appliquée -18-

34 Référence


Télécharger ppt "XML Stylesheet Language"

Présentations similaires


Annonces Google