XML - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

XML

Description:

En appliquant cette feuille de style au document pr c dent, on obtient : ... En appliquant cette feuille de style au document pr c dent, on obtient : ... – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 41
Provided by: SEC1184
Category:

less

Transcript and Presenter's Notes

Title: XML


1
XML
  • Feuilles de style avec XSL extended Stylesheet
    Language

2
Introduction
  • Un document XML ne contient que des informations
    sur la structure, aucune information relative à
    la mise en page n'apparaît dans le document
  • gt Utilisation d'une feuille de style
    obligatoire en XML pour contrôler la mise en page
    du document.
  • Possibilité d'utiliser CSS ou XSL
  • Différence
  • CSS utilise des règles pour établir ce qui doit
    être formaté et le formatage appliqué (headings,
    paragraphes, tables)
  • XSL utilise des modèles qui sont associés avec
    vos propres éléments XML.
  • XSL permet d'autres choses que l'affichage
    (sélection, tri, )

3
Les trois parties de la norme XSL
  • XSL est divisé en deux parties
  • XSLT, un langage de transformation de documents
    (ex. génération d'une page HTML à partir d'un
    fichier XML et de la feuille de style)
  • XSL-FO, un ensemble d'instructions de formatage
    XML dédié à la présentation (Formatting Objects)
    de documents en vue d'une impression. Il comporte
    un modèle de format et des propriétés de style
    basées sur CSS2.
  • XSL utilise la syntaxe XPath pour identifier les
    éléments ou les parties du document qu'on
    souhaite transformer, formater
  • XPath modélise le document XML comme un arbre et
    permet de désigner (par des chemins) des parties
    du document XML.

4
Processus de transformation XSLT
  • Etapes
  • Un parseur XML interprète le document XML et
    forme un arbre
  • L'arbre est passé à un processeur XSLT
  • Le processeur XSLT compare les nuds dans l'arbre
    avec les instructions contenus dans la feuille de
    style référencée (XSL)
  • Quand le processeur trouve une correspondance, il
    sort un fragment d'arbre (résultat)
  • L'arbre est sorti vers un agent utilisateur, par
    exemple au format HTML (ou xml, texte, ).

5
Processus de transformation XSLT
XSL
HTML ou autre format de sortie
XML
processeur XSLT
6
Syntaxe d'une feuille de style XSL
  • Fichier xsl simple
  • lt?xml version"1.0"?gt
  • ltxslstylesheet version"1.0" xmlnsxsl"http//ww
    w.w3.org/1999/XSL/Transform"gt
  • ltxsltemplate match"/"gt
  • lthtmlgt
  • ltbodygt
  • ltxslapply-templates/gt
  • lt/bodygt
  • lt/htmlgt
  • lt/xsltemplategt
  • lt/xslstylesheetgt
  • L'application de cette feuille de style à
    n'importe quel document XML reproduit le contenu
    sans le balisage.

applique tous les modèles (ici par défaut) sur
les fils de la racine
7
Exemple le fichier xml
  • ltlivresgt
  •    ltlivregt
  •       lttitregtFondationlt/titregt
  •       ltauteurgt
  •          ltnomgtAsimovlt/nomgt
  •          ltprenomgtIsaaclt/prenomgt
  •       lt/auteurgt
  •       ltgenregtScience-Fictionlt/genregt
  •    lt/livregt
  •    ltlivregt
  •       lttitregtLes Robotslt/titregt
  •       ltauteur naissance"1920" mort"1992"gt
  •          ltnomgtAsimovlt/nomgt
  •          ltprenomgtIsaaclt/prenomgt
  •       lt/auteurgt
  •    ltgenregtScience-Fictionlt/genregt
  •    lt/livregt
  • lt/livresgt

8
Modèles (template)
  • Dans l'exemple précédent, tous les template par
    défaut sont lancés à partir de la racine. Ils
    permettent d'afficher le contenu de chaque
    élément.
  • Pour changer cela, il faut ajouter des template
    (règles modèles) à la feuille de style indiquant
    au processeur XSLT comment traiter les éléments
    spécifiques du document d'entrée.
  • A l'intérieur des balises xslstylesheet, on
    insère donc des template qui vont être appliqués
    quand ils correspondent au noeud XML spécifié par
    l'attribut match.
  • ltxsltemplate match"NAME"gt lt/xsltemplategt
  • ltxslapply-templates select"pattern" /gt
    applique les template de la feuille de style
  • sur les fils du noeud courant si aucun "pattern"
    n'est sélectionné
  • sur les noeuds spécifiés dans le "pattern" dans
    le langage XPath sinon

9
Exemple la feuille xsl
  • lt?xml version"1.0"?gt
  • ltxslstylesheet version"1.0" xmlnsxsl"http//ww
    w.w3.org/1999/XSL/Transform"gt
  • ltxsltemplate match"/"gt
  • lthtmlgtltbodygt
  • ltxslapply-templates/gt
  • lt/bodygtlt/htmlgt
  • lt/xsltemplategt
  • ltxsltemplate match"livre"gt
  • Un livre
  • lt/xsltemplategt
  • lt/xslstylesheetgt
  • En appliquant cette feuille de style au
    document précédent, on obtient
  • Un livre Un livre

applique tous les modèles (ici un template défini
pour l'élement livre) sur les fils de la racine
10
Exemple la feuille xsl
  • lt?xml version"1.0"?gt
  • ltxslstylesheet version"1.0" xmlnsxsl"http//ww
    w.w3.org/1999/XSL/Transform"gt
  • ltxsltemplate match"/"gt
  • lthtmlgtltbodygt
  • ltxslapply-templates/gt
  • lt/bodygtlt/htmlgt
  • lt/xsltemplategt
  • ltxsltemplate match"livre"gt
  • ltpgtUn livrelt/pgt
  • lt/xsltemplategt
  • lt/xslstylesheetgt
  • En appliquant cette feuille de style au
    document précédent, on obtient
  • Un livre
  • Un livre

Attention si on inclut du balisage, la feuille
de style doit être du XML bien formé
11
Valeur d'un élément value-of
  • Mais on n'a pas le contenu des éléments
  • ltxslvalue-of select"pattern"
    disable-output-escaping"yes"/gt
  • Permet d'insérer le contenu de la balise
    sélectionnée ou de l'attribut sélectionné par le
    pattern.
  • Le pattern peut définir
  • une chaîne,
  • un élément (la valeur générée sera le texte
    contenu dans l'élément),
  • un attribut (la valeur sera celle de l'attribut).
  • Eventuellement, remplace les séquences
    d'échappement ... par leurs caractères
    équivalents.

12
Exemple la feuille xsl
  • lt?xml version"1.0"?gt
  • ltxslstylesheet version"1.0" xmlnsxsl"http//ww
    w.w3.org/1999/XSL/Transform"gt
  • ltxsltemplate match"/"gt
  • lthtmlgtltbodygt
  • ltxslapply-templates/gt
  • lt/bodygtlt/htmlgt
  • lt/xsltemplategt
  • ltxsltemplate match"livre"gt
  • Un livre
  • ltxslvalue-of select"titre"/gt
  • lt/xsltemplategt
  • lt/xslstylesheetgt
  • En appliquant cette feuille de style au
    document précédent, on obtient
  • Un livre Fondation
  • Un livre Les Robots

xslvalue-of permet de récupérer la valeur
contenue entre les balises XML de l'arbre de
données
13
Appliquer des modèles apply-templates
  • Jusqu'ici on a utilisé apply-templates sans
    sélectionner de pattern, les template ont donc
    été appliqués à partir de la racine.
  • Par défaut, le processeur XSLT lit le document
    XML d'entrée de haut en bas séquentiellement, une
    règle pour un élément est donc activée avant les
    règles correspondant à ses sous-éléments.
  • On peut changer cet ordre de parcours et
    spécifier quels éléments devront être traités
    après, ou au milieu du traitement d'un autre
    élément, ainsi que les nuds sur lesquels on veut
    appliquer ces traitements, grâce à l'attribut
    select de apply-templates.

14
Exemple la feuille xsl
  • On veut lister les auteurs du document, en
    affichant d'abord leur nom de famille puis leur
    prénom.
  • lt?xml version"1.0"?gt
  • ltxslstylesheet version"1.0" xmlnsxsl"http//ww
    w.w3.org/1999/XSL/Transform"gt
  • ltxsltemplate match"/"gt
  • lthtmlgtltbodygtltxslapply-templates/gtlt/bodygtlt/htmlgt
  • lt/xsltemplategt
  • ltxsltemplate match"auteur"gt
  • ltxslvalue-of select"nom"/gtltbr/gt
  • ltxslvalue-of select"prenom"/gtltbr/gt
  • lt/xsltemplategt
  • lt/xslstylesheetgt
  • Ce n'est pas suffisant le résultat contiendra
    les noms, prénoms des auteurs mais aussi les
    titres et genres des livres !!!

1er essai
15
Exemple la feuille xsl
  • Il faut rajouter une règle pour livre indiquant
    d'appliquer les template seulement aux
  • sous-éléments auteur et pas aux
    sous-éléments titre et genre.
  • lt?xml version"1.0"?gt
  • ltxslstylesheet version"1.0" xmlnsxsl"http//ww
    w.w3.org/1999/XSL/Transform"gt
  • ltxsltemplate match"/"gt
  • lthtmlgtltbodygtltxslapply-templates/gtlt/bodygtlt/htmlgt
  • lt/xsltemplategt
  • ltxsltemplate match"livre"gt
  • ltxslapply-templates select"auteur"/gt
  • lt/xsltemplategt
  • ltxsltemplate match"auteur"gt
  • ltxslvalue-of select"nom"/gtltbr/gt
  • ltxslvalue-of select"prenom"/gtltbr/gt
  • lt/xsltemplategt
  • lt/xslstylesheetgt

OK !
16
Exemple la feuille xsl
  • Si on ne veut rien afficher pour les genre et
    auteur, on peut également spécifier dans le
    premier apply-templates exécuté qu'on ne veut
    lancer que le template des nuds auteur.
  • lt?xml version"1.0"?gt
  • ltxslstylesheet version"1.0" xmlnsxsl"http//ww
    w.w3.org/1999/XSL/Transform"gt
  • ltxsltemplate match"/"gt
  • lthtmlgtltbodygt
  • ltxslapply-templates select"auteur"/gt
  • lt/bodygtlt/htmlgt
  • lt/xsltemplategt
  • ltxsltemplate match"auteur"gt
  • ltxslvalue-of select"nom"/gtltbr/gt
  • ltxslvalue-of select"prenom"/gtltbr/gt
  • lt/xsltemplategt
  • lt/xslstylesheetgt

Ça ne marche pas ! Pourquoi ???
Parce que auteur n'est pas accessible directement
à partir de la racine !
17
Exemple la feuille xsl
  • Si on ne veut rien afficher pour les titres et
    genre, on peut également spécifier dans le
    premier apply-templates exécuté qu'on ne veut
    lancer que le template des nuds auteur.
  • lt?xml version"1.0"?gt
  • ltxslstylesheet version"1.0" xmlnsxsl"http//ww
    w.w3.org/1999/XSL/Transform"gt
  • ltxsltemplate match"/"gt
  • lthtmlgtltbodygt
  • ltxslapply-templates select"auteur" /gt
  • lt/bodygtlt/htmlgt
  • lt/xsltemplategt
  • ltxsltemplate match"auteur"gt
  • ltxslvalue-of select"nom"/gtltbr/gt
  • ltxslvalue-of select"prenom"/gtltbr/gt
  • lt/xsltemplategt
  • lt/xslstylesheetgt

Ça ne marche pas ! Pourquoi ???
Parce que auteur n'est pas accessible directement
à partir de la racine !
On peut remplacer par select "livres/livre/auteu
r" par exemple
18
Exemple la feuille xsl
  • lt?xml version"1.0"?gt 
  • ltxslstylesheet version"1.0" xmlnsxsl"http//ww
    w.w3.org/1999/XSL/Transform"gt
  •    ltxsl template match"/"gt 
  • lthtmlgtltbodygt
  •       ltxslapply-templates select"livres"/gt 
  • lt/bodygtlt/htmlgt
  •    lt/xsltemplategt 
  •    ltxsltemplate match"livres"gt 
  •             ltxslapply-templates
    select"livre"/gt 
  •     lt/xsltemplategt 
  •    ltxsltemplate match"livre"gt 
  •       Titre ltbgtltxslvalue-of select"titre"/gtlt/bgt
    ltbr/gt 
  •       Auteur ltbgtltxslvalue-of select"auteur/nom"
    /gtlt/bgt
  • ltxsltextgt lt/xsltextgt
  • ltbgtltxslvalue-of select"auteur/prenom"/gtlt/b
    gtltbr/gt 
  •       Genre ltbgtltxslvalue-of select"genre"/gtlt/bgt
    ltbr/gtltbr/gt 
  •    lt/xsltemplategt 
  • lt/xslstylesheetgt

19
xsltext
  • xsltext génère le texte spécifié sans enlever
    des "blancs" et sur option, remplace les
    séquences d'échappement ... par leurs
    caractères.
  • ltxsltext disable-output-escaping"yes"gt texte
    lt/xsltextgt génère intégralement le texte
    spécifié en sortie, en particulier les "blancs"
    éventuellement, remplace les séquences
    d'échappement ... par leurs caractères
    équivalents.

20
Attributs
  • Si un élément dans le document XML possède des
    attributs
  •       _at_nom_attribut indique la valeur de
    l'attribut.
  • Par exemple,
  • ltxslvalue-of select"_at_naissance"/gt
  • affiche la valeur de l'attribut naissance pour
    l'auteur sélectionné
  • (à condition que l'élément courant possède un
    attribut naissance).

21
Règles par défaut
  • lt?xml version"1.0"?gt
  • ltxslstylesheet version"1.0" xmlnsxsl"http//ww
    w.w3.org/1999/XSL/Transform"gt
  • ltxsltemplate match"/"gt
  • ltxslapply-templates/gt
  • lt/xsltemplategt
  • ltxsltemplate match"text()_at_"gt
  • ltxslvalue-of select"."/gt
  • lt/xsltemplategt
  • ltxsltemplate match"processing-instruction()
    comment()"/gt
  • lt/xslstylesheetgt

Récursivité sur les éléments applique les
template pour les nuds fils de la racine et de
chaque élément.
Affichage du texte des éléments et des valeurs
d'attributs
ignore les commentaires et les processing-instruct
ions
22
Exercice
  • Ecrire un fichier XML et un fichier XSL
    permettant de décrire et d'afficher des
    informations sur des groupes musicaux (style de
    musique, nom du groupe, instrumentistes
    principaux) sous forme de tableau.
  • Exemple en affichant nom du groupe et guitariste

23
Exercice
  • groupes.xml
  • lt?xml version"1.0" encoding"ISO-8859-1" ?gt
  • lt?xml-stylesheet type"application/xml"
    href"groupes.xsl"?gt
  • ltgroupesgt lt!--association pour le
    navigateur--gt
  • ltgroupe type"punk"gt
  • ltnomgtThe Clashlt/nomgt
  • ltchantgtJoe Strummerlt/chantgt
  • ltbassegtPaul Simononlt/bassegt
  • ltguitaregtMick Joneslt/guitaregt
  • ltbatteriegtTerry Chimeslt/batteriegt
  • lt/groupegt
  • ltgroupe type"rock"gt
  • ltnomgtThe Policelt/nomgt
  • ltguitaregtAndy Summerslt/guitaregt
  • ltchantgtStinglt/chantgt
  • ltbatteriegtStewart Copelandlt/batteriegt
  • lt/groupegt
  • lt/groupesgt

24
Autres fonctions XSLT ltxslfor-eachgt
  • ltxslfor-each select"pattern"gttransformationslt/xs
    lfor-eachgt
  • Sélectionne tous les éléments fils à l'aide de
    l'attribut select, puis pour chacun, en fait le
    noeud courant auquel sont appliquées les
    transformations spécifiées.
  • Permet de faire une boucle quand il n'est pas
    pratique de lancer les template récursivement
    (bien pour un traitement localisé)

25
Autres fonctions XSLT ltxslfor-eachgt
  • lt?xml version"1.0"?gt
  • ltxslstylesheet xmlnsxsl"http//www.w3.org/1999/
    XSL/Transform" version"1.0"gt
  • ltxsltemplate match"/"gt
  • lthtmlgt
  • ltheadgtlttitlegtGroupeslt/titlegtlt/headgt
  • ltbodygt
  • lttable border"1" bgcolor"white"gt
  • lttrgt
  • lttdgtNomlt/tdgt
  • lttdgtGuitarelt/tdgt
  • lt/trgt
  • ltxslfor-each select"groupes/groupe"gt
  • lttrgt
  • lttdgtltxslvalue-of select"nom"/gtlt/tdgt
  • lttdgtltxslvalue-of select"guitare"/gtlt/tdgt
  • lt/trgt
  • lt/xslfor-eachgt
  • lt/tablegt
  • lt/bodygt

26
Autres fonctions XSLT ltxslifgt
  • ltxslif test"pattern"gt transformations lt/xslifgt
  • les transformations ne sont appliquées au noeud
    courant que si l'évaluation du pattern (prédicat
    XPath) donne la valeur "vrai".
  • ltxsltemplate match"groupe"gt
  • ltxslif test"nom 'The Police' "gt
  • ltxsltextgtActu le groupe lt/xsltextgt
  • ltxslvalue-of select"./nom"/gt
  • ltxsltextgt se reforme !!!lt/xsltextgt
  • lt/xslifgt
  • lt/xsltemplategt

Attention pas de else !!! Il faut utiliser le
choose
27
Autres fonctions XSLT ltxslchoosegt, ltxslwhengt,
ltxslotherwisegt
  • ltxslchoosegt plusieurs transformations xslwhen
    transformation xslotherwise lt/xslchoosegt
  • Les transformations xslwhen ou xslotherwise
    s'appliquent au même noeud courant. Dès qu'une
    transformation xslwhen ou une transformation
    xslotherwise s'applique, la transformation
    xslchoose se termine.
  • ltxslwhen test"pattern"gt transformations
    lt/xslwhengt
  • les transformations ne sont appliquées au noeud
    courant que si l'évaluation du pattern (prédicat
    XPath) donne la valeur vrai.
  • ltxslotherwisegt transformations lt/xslotherwisegt
  • les transformations ne sont appliquées au noeud
    courant que si aucune transformation xslwhen ne
    s'applique.

28
Autres fonctions XSLT ltxslchoosegt, ltxslwhengt,
ltxslotherwisegt
  • ltxsltemplate match"groupe"gt
  • ltxslchoosegt
  • ltxslwhen test"nom 'The Police' "gt
  • ltxsltextgtActu le groupe lt/xsltextgt
  • ltxslvalue-of select"./nom"/gt
  • ltxsltextgt se reforme
    !!!lt/xsltextgtltbr/gt
  • lt/xslwhengt
  • ltxslotherwisegt
  • ltxsltextgtHélas le groupe lt/xsltextgt
  • ltxslvalue-of select"nom"/gt
  • ltxsltextgt n'est plus.lt/xsltextgtltbr/gt
  • lt/xslotherwisegt
  • lt/xslchoosegt

29
Autres fonctions XSLT ltxslnumbergt
  • ltxslnumber count"pattern" level"singlemulti
    pleany" format"chaine"/gt
  • Insère en "output" un numéro incrémenté.
  • Par défaut, sur les noeuds courants, sinon ceux
    sélectionnés par le pattern.
  • Avec une numérotation sur un seul (single) niveau
    de l'arborescence du document initial, ou sur
    plusieurs (multiple) niveaux, ou sans tenir
    compte (any) des niveaux.
  • Les formats et valeurs initiales de numérotation
    sont donnés par la chaîne.
  • ltxsltemplate match"groupe"gt
  • ltxslnumber level"multiple" format"1."/gt
  • ltxslvalue-of select"nom"/gtltbr/gt
  • lt/xsltemplategt

30
Autres fonctions XSLT ltxslsortgt
  • ltxslsort select"pattern" lang"langue"
    data-type"textnumber" order"ascendingdescen
    ding"/gt
  • xslsort doit figurer juste après
    xslapply-templates ou xslfor-each ou xslsort.
    Le tri s'effectue sur les valeurs du pattern
    spécifié.
  • Peuvent être précisés la langue, ordre
    lexicographique (par défaut) ou numérique, ordre
    ascendant (par défaut) ou descendant.
  • ltxslapply-templates select"groupe"gt
  • ltxslsort select"nom" order"descending"/gt
  • lt/xslapply-templatesgt

Attention dans ce cas on ne ferme pas le
xslapply-templates avant le xslsort !!
31
Fonction sans paramètre (xsltemplate et
xslcall-template)
  • Pour déclarer une fonction, on utilise la
    fonction ltxsltemplategt
  • ltxsltemplate name"hello_world"gt
  • ltxsltextgtHello World !lt/xsltextgt
  • lt/xsltemplategt
  • On appelle la fonction avec ltxslcall-templategt
  • ltxslcall-template name"hello_world" /gt

32
Fonction avec paramètres (xslparam et
xslwith-param)
  • Déclaration d'un paramètre
  • ltxslparam name"nom"gtvaleurlt/xslparamgt
  • Si l'attribut select est employé, alors l'élément
    devra être vide
  • ltxslparam name"nom" select"expression" /gt
  • On accède à la valeur d'un paramètre par
    l'intermédiaire de son nom précédé du signe
    dollar .
  • A l'appel de la fonction, les paramètres sont
    passés avec ltxslwith-paramgt
  • ltxslcall-template name"nom_fonction"gt
  • ltxslwith-param name"a" select"valeur_de_a"
    /gt
  • ltxslwith-param name"b"gtvaleur_de_blt/xslwith
    -paramgt
  • lt/xslcall-templategt

33
Exercice
  • Ecrire une fonction permettant d'afficher deux
    nombres (paramètres) et leur somme, ainsi que
    l'appel de cette fonction sur des paramètres a et
    b dont on fixera les valeurs.

34
Solution
  • ltxsltemplate name"affiche_somme"gt
  • ltxslparam name"a" select"0"/gt
  • ltxslparam name"b" select"0"/gt
  • ltxsltextgta lt/xsltextgt
  • ltxslvalue-of select"a"/gt
  • ltxsltextgtb lt/xsltextgt
  • ltxslvalue-of select"b"/gt
  • ltxsltextgt, et ab lt/xsltextgt
  • ltxslvalue-of select"ab"/gt
  • ltxsltextgt.lt/xsltextgt
  • lt/xsltemplategt
  • A l'appel
  • ltxslcall-template name"affiche_somme"gt
  • ltxslwith-param name"a" select"173"/gt
  • ltxslwith-param name"b"gt9001lt/xslwith-paramgt
  • lt/xslcall-templategt

35
xslcopy, xslelement, xslattribute
  • Si on crée un document xml en sortie, on peut
    avoir besoin de copier ou de créer des éléments
    et attributs.
  • ltxslcopygt transformations lt/xslcopygt
  • copie le noeud courant dans le document final,
    mais pas ses attributs, ni ses descendants ces
    dernières sont à charge des transformations.
  • ltxslelement name"nom"gt transformations
    lt/xslelementgt
  • crée un élément du nom spécifié dans le document
    final.
  • ltxslattribute name"nom"gt valeur
    lt/xslattributegt
  • crée et ajoute un attribut du nom et de la valeur
    spécifiés à l'élément courant.

36
pour remplacer ltxslvalue-ofgt
  • pattern
  • fonctionne comme ltxslvalue-of select"pattern"/gt
  • Utile dans certains cas pour éviter d'avoir un
    document mal formé à cause de mauvaise
    imbrications
  • ltxsltemplate match"groupe"gtlta
    href"ltxslvalue-of select"nom"/gt.html"gt
  • n'est pas bien formé
    XML !
  • On le remplace par ltxsltemplate match"groupe"gt
    lta href"nom.html"gt
  • nom est équivalent à ltxslvalue-of
    select"nom"/gt
  • Ca marche aussi pour les attributs _at_ligne

37
Gestion des blancs
  • On peut spécifier comment gérer les blancs
    apparaissant dans le document xml source.
  • ltxslstrip-space elements"liste_d_éléments" /gt
  • ltxslpreserve-space elements"liste_d_éléments"
    /gt
  • xslstrip-space (inversement à xslpreserve-space)
    indique dans le document xml source quel sont
    les sous-arbres de racine figurant dans la
    liste_d_éléments, où sont éliminés (resp.
    préservés) les éléments "text" à blanc.
  • Ces instructions peuvent permettre de faire des
    copies d'éléments "propres" (par exemple quand on
    veut récupérer des balises html dans un document
    xml).

38
Visualiser les résultats d'une feuille xsl
  • On peut référencer la feuille xsl dans le
    document xml
  • lt?xml-stylesheet type"application/xml"
    href"feuille.xsl"?gt
  • pour que le navigateur web associe la
    feuille de style directement à l'affichage du
    document xml (ne pas oublier lthtmlgt et ltbodygt
    dans la feuille de style).
  • On peut utiliser un processeur XSLT indépendant
    et récupérer un document de sortie. Alors le
    format de sortie est indiqué par ltxsloutputgt
  • ltxsloutput method"xmlhtmltext..."
    encoding"codage" indent"yesno" /gt
  • définit le format du document produit, avec
    éventuellement l'indentation adéquate.
  • Processeurs XSLT Saxon (en java, installé en
    D13), XT,

39
Remarque espaces/domaines de nom
  • Les éléments XSL sont des balises XML préfixées
    par le namespace xsl.
  • exemple ltxsltemplategt
  • Dans ltxsltemplategt le préfixe xsl indique que
    l'élément template fait partie de xsl, le préfixe
    et le nom de l'élement sont toujours séparés par
  • Espaces/domaines de noms (namespaces)
  • Un nom d'élément peut être divisé en deux parties
  • domaine_de_nomnom_element
  • L'utilisation des espaces/domaines de noms n'est
    pas obligatoire, mais elle permet d'éviter les
    collisions lorsque l'on fusionne plusieurs
    éléments de mêmes domaines d'activité provenant
    de plusieurs sources.

40
Déclaration des espaces de noms
  • Où les espaces de noms peuvent déclarés dans
    les éléments contenant les préfixes d'espace de
    noms, ou pour plus de clarté dans l'élément
    racine
  • Comment par l'intermédiaire de l'attribut
    xmlns.
  • ltespace_de_nomelement xmlnsespace_de_nom"URI"gt
  • lt/espace_de_nomelementgt
  • l'URI (Uniform Resource Identifier) permet
    d'associer une adresse internet à l'espace de
    noms
  • ltxslstylesheet xmlnsxsl"http//www.w3.org.XSL/T
    ransform/1.0"gt
Write a Comment
User Comments (0)
About PowerShow.com