![Page 1: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/1.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 1
XSLT
Exemples pas-à-pas (2)
INU3011 – EBSI
![Page 2: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/2.jpg)
La DTD (pour référence)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 2
<!ELEMENT notice (accès, lisibilité, auteurs, titre)>
<!ATTLIST notice type (article | rapport) #REQUIRED>
<!ELEMENT accès (restreint | général)>
<!ELEMENT restreint EMPTY>
<!ELEMENT général EMPTY>
<!ELEMENT lisibilité (restreint | général)>
<!ELEMENT auteurs (auteur+)>
<!ELEMENT auteur (#PCDATA)>
<!ELEMENT titre (#PCDATA)>
![Page 3: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/3.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 3
Traitement typique
d'éléments répétables<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="notice/titre" /></title>
</head>
<body>
<xsl:apply-templates select="notice/auteurs" />
</body>
</html>
</xsl:template>
<xsl:template match="auteurs">
<p><strong>Auteurs:</strong></p>
<ul><xsl:apply-templates /></ul>
</xsl:template>
<xsl:template match="auteur">
<li><xsl:value-of select="." /></li>
</xsl:template>
<notice type="article">
<accès><général/></accès>
<lisibilité><restreint/></lisibilité>
<auteurs>
<auteur>Julia Royer</auteur>
<auteur>Claude Rouleau</auteur>
</auteurs>
<titre>Le printemps</titre>
</notice>
![Page 4: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/4.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 4
Extrant de la transformation XSLT
<html>
<head>
<title>Le printemps</title>
</head>
<body>
<p><strong>Auteurs:</strong></p>
<ul>
<li>Julia Royer</li>
<li>Claude Rouleau</li>
</ul>
</body>
</html>
![Page 5: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/5.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 5
Résultat en navigateur
![Page 6: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/6.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 6
Attributs dans l'extrant HTML
• Pour mettre un attribut dont la valeur ne
varie pas d'un document à l'autre:
– Facile: on met la valeur d'attribut dans un
fragment HTML
– Exemple:
<a href="http://www.ebsi.umontreal.ca/">EBSI</a>
![Page 7: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/7.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 7
Attribut dont la valeur ne varie pas
d'un document à l'autre
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="notice/titre" /></title>
</head>
<body>
<h1><xsl:value-of select="notice/titre" /></h1>
<hr/>
<p>Cette notice est disponible à
l'<a href="http://ebsi.umontreal.ca/">EBSI</a>.
</p>
</body>
</html>
</xsl:template>
<notice type="article">
<accès><général/></accès>
<lisibilité><restreint/></lisibilité>
<auteurs>
<auteur>Julia Royer</auteur>
<auteur>Claude Rouleau</auteur>
</auteurs>
<titre>Le printemps</titre>
</notice>
![Page 8: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/8.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 8
Extrant de la transformation XSLT
<html>
<head>
<title>Le printemps</title>
</head>
<body>
<h1>Le printemps</h1>
<hr>
<p>Cette notice est disponible à
l'<a href="http://ebsi.umontreal.ca/">EBSI</a>.
</p>
</body>
</html>
![Page 9: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/9.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 9
Résultat en navigateur
![Page 10: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/10.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 10
Attribut dont la valeur varie
d'un document à l'autre<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="notice/titre" /></title>
</head>
<body>
<h1><xsl:value-of select="notice/titre" /></h1>
<hr/>
<p>Le type de ce document est
<xsl:value-of select="notice/@type" />.
Cliquez ici pour une
<a href="desc-{notice/@type}.html">description
de ce type de document</a>.</p>
</body>
</html>
</xsl:template>
<notice type="article">
<accès><général/></accès>
<lisibilité><restreint/></lisibilité>
<auteurs>
<auteur>Julia Royer</auteur>
<auteur>Claude Rouleau</auteur>
</auteurs>
<titre>Le printemps</titre>
</notice>
![Page 11: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/11.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 11
Extrant de la transformation XSLT
<html>
<head>
<title>Le printemps</title>
</head>
<body>
<h1>Le printemps</h1>
<hr>
<p>Le type de ce document est
article.
Cliquez ici pour une
<a href="desc-article.html">description de ce
type de document</a>.
</p>
</body>
</html>
![Page 12: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/12.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 12
Résultat en navigateur
![Page 13: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/13.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 13
Avec un document d'un autre type
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="notice/titre" /></title>
</head>
<body>
<h1><xsl:value-of select="notice/titre" /></h1>
<hr/>
<p>Le type de ce document est
<xsl:value-of select="notice/@type" />.
Cliquez ici pour une
<a href="desc-{notice/@type}.html">description
de ce type de document</a>.</p>
</body>
</html>
</xsl:template>
<notice type="rapport">
<accès><général/></accès>
<lisibilité><restreint/></lisibilité>
<auteurs>
<auteur>Julia Royer</auteur>
<auteur>Claude Rouleau</auteur>
</auteurs>
<titre>Le printemps</titre>
</notice>
![Page 14: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/14.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 14
Extrant de la transformation XSLT
<html>
<head>
<title>Le printemps</title>
</head>
<body>
<h1>Le printemps</h1>
<hr>
<p>Le type de ce document est
rapport.
Cliquez ici pour une
<a href="desc-rapport.html">description de ce
type de document</a>.
</p>
</body>
</html>
![Page 15: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/15.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 15
Résultat en navigateur
![Page 16: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/16.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 16
Gabarits de valeur d'attribut
• La forme {…} dans une valeur d'attribut
d'un fragment HTML s'appelle un gabarit
de valeur d'attribut
• Il doit contenir une expression XPath
• Le résultat de l'expression remplace le
gabarit dans la valeur d'attribut réellement
placée dans l'extrant
• Déjà vu dans l'exemple 170-Ex-multimedia
– Feuille XSLT livre.xsl
![Page 17: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/17.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 17
Autre façon d'ajouter dans l'extrant
un attribut dont la valeur varie
d'un document à l'autre
• L'exemple 245-Ex-XSLT-attribut illustre
une autre façon de procéder, sans gabarit
de valeur d'attribut
![Page 18: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/18.jpg)
Traitement spécial des premiers
de fratrie
• Souvent, par exemple dans des listes ou
autres sortes d’énumération, les premiers
de fratrie doivent être traités différemment:
– Ex.: Jean, Paul, Louis
– Le délimiteur « , » ne doit pas être inséré
avant le premier nom !
– Doit aussi marcher s'il y a un seul élément
dans la fratrie
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 18
![Page 19: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/19.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 19
Traitement spécial du
premier auteur
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="notice/titre" /></title>
</head>
<body>
<xsl:apply-templates select="notice/auteurs" />
</body>
</html>
</xsl:template>
<xsl:template match="auteurs">
<p><strong>Auteurs: </strong>
<xsl:apply-templates select="*" />.</p>
</xsl:template>
<xsl:template match="auteur">,
<xsl:value-of select="." /></xsl:template>
<xsl:template match="auteur[1]">
<xsl:value-of select="." /></xsl:template>
<notice type="article">
<accès><général/></accès>
<lisibilité><restreint/></lisibilité>
<auteurs>
<auteur>Julia Royer</auteur>
<auteur>Claude Rouleau</auteur>
<auteur>Elvis Tekakwitha</auteur>
</auteurs>
<titre>Le printemps</titre>
</notice>
![Page 20: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/20.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 20
Extrant de la transformation XSLT
<html>
<head>
<title>Le printemps</title>
</head>
<body>
<p><strong>Auteurs: </strong>Julia Royer,
Claude Rouleau,
Elvis Tekakwitha.
</p>
</body>
</html>
N.B.: Ça marche même s'il n'y a qu'un auteur !
![Page 21: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/21.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 21
Résultat en navigateur
![Page 22: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/22.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 22
Traitements conditionnels
• Instructions xsl:if et xsl:choose
– Permettent d'ajuster le traitement en fonction
d'une condition sur le contenu du document
– Peut parfois permettre de diminuer la
redondance entre plusieurs gabarits:
• Un gabarit général remplace plusieurs spécialisés
– Exemples avec nos notices:
• ajout d'un "s" seulement si plus d'un auteur…
• simplifier le traitement de l'accès…
![Page 23: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/23.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 23
Traitement des auteursOn revient un peu en arrière…<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="notice/titre" /></title>
</head>
<body>
<xsl:apply-templates select="notice/auteurs" />
</body>
</html>
</xsl:template>
<xsl:template match="auteurs">
<p><strong>Auteurs:</strong></p>
<ul><xsl:apply-templates /></ul>
</xsl:template>
<xsl:template match="auteur">
<li><xsl:value-of select="." /></li>
</xsl:template>
<notice type="article">
<accès><général/></accès>
<lisibilité><restreint/></lisibilité>
<auteurs>
<auteur>Elvis Tekakwitha</auteur>
</auteurs>
<titre>Le printemps</titre>
</notice>
![Page 24: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/24.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 24
Résultat en navigateur
Pas très joli linguistiquement…
Peut-on faire mieux que "Auteur(s)" ?
![Page 25: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/25.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 25
Oui, avec xsl:if
<notice type="article">
<accès><général/></accès>
<lisibilité><restreint/></lisibilité>
<auteurs>
<auteur>Elvis Tekakwitha</auteur>
</auteurs>
<titre>Le printemps</titre>
</notice>
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="notice/titre" /></title>
</head>
<body>
<xsl:apply-templates select="notice/auteurs" />
</body>
</html>
</xsl:template>
<xsl:template match="auteurs">
<p><strong>Auteur<xsl:if
test="count(*)>1">s</xsl:if>:</strong></p>
<ul><xsl:apply-templates /></ul>
</xsl:template>
<xsl:template match="auteur">
<li><xsl:value-of select="." /></li>
</xsl:template>
![Page 26: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/26.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 26
Extrant de la transformation XSLT
<html>
<head>
<title>Le printemps</title>
</head>
<body>
<p><strong>Auteur:</strong></p>
<ul>
<li>Elvis Tekakwitha</li>
</ul>
</body>
</html>
![Page 27: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/27.jpg)
Maintenant, en navigateur…
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 27
![Page 28: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/28.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 28
Et ça marche encore
avec plus d'unauteur…
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="notice/titre" /></title>
</head>
<body>
<xsl:apply-templates select="notice/auteurs" />
</body>
</html>
</xsl:template>
<xsl:template match="auteurs">
<p><strong>Auteur<xsl:if
test="count(*)>1">s</xsl:if>:</strong></p>
<ul><xsl:apply-templates /></ul>
</xsl:template>
<xsl:template match="auteur">
<li><xsl:value-of select="." /></li>
</xsl:template>
<notice type="article">
<accès><général/></accès>
<lisibilité><restreint/></lisibilité>
<auteurs>
<auteur>Julia Royer</auteur>
<auteur>Claude Rouleau</auteur>
<auteur>Elvis Tekakwitha</auteur>
</auteurs>
<titre>Le printemps</titre>
</notice>
![Page 29: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/29.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 29
Extrant de la transformation XSLT
<html>
<head>
<title>Le printemps</title>
</head>
<body>
<p><strong>Auteurs:</strong></p>
<ul>
<li>Julia Royer</li>
<li>Claude Rouleau</li>
<li>Elvis Tekakwitha</li>
</ul>
</body>
</html>
![Page 30: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/30.jpg)
… comme on peut voir !
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 30
![Page 31: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/31.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 31
Traitement de l'accèsPoint de départ (rappel)
<notice type="article">
<accès><général/></accès>
<lisibilité><restreint/></lisibilité>
<auteurs>
<auteur>Julia Royer</auteur>
<auteur>Claude Rouleau</auteur>
</auteurs>
<titre>Le printemps</titre>
</notice>
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="notice/titre" /></title>
</head>
<body>
<xsl:apply-templates select="notice/accès" />
</body>
</html>
</xsl:template>
<xsl:template match="accès[général]">
<p>L'accès à cette notice n'est pas limité.</p>
</xsl:template>
<xsl:template match="accès[restreint]">
<p>L'accès à cette notice est limité.</p>
</xsl:template>
![Page 32: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/32.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 32
Avec xsl:choose
<notice type="article">
<accès><général/></accès>
<lisibilité><restreint/></lisibilité>
<auteurs>
<auteur>Julia Royer</auteur>
<auteur>Claude Rouleau</auteur>
</auteurs>
<titre>Le printemps</titre>
</notice>
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="notice/titre" /></title>
</head>
<body>
<xsl:apply-templates select="notice/accès" />
</body>
</html>
</xsl:template>
<xsl:template match="accès">
<p>L'accès à cette notice
<xsl:choose>
<xsl:when test="restreint">est</xsl:when>
<xsl:otherwise>n'est pas</xsl:otherwise>
</xsl:choose>
limité.</p>
</xsl:template>
![Page 33: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/33.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 33
Extrant de la transformation XSLT
<html>
<head>
<title>Le printemps</title>
</head>
<body>
<p>L'accès à cette notice
n'est pas
limité.
</p>
</body>
</html>
![Page 34: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/34.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 34
Même résultat en navigateur
qu'avec les gabarits originels…
![Page 35: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/35.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 35
... aussi avec accès restreint…
<notice type="article">
<accès><restreint/></accès>
<lisibilité><restreint/></lisibilité>
<auteurs>
<auteur>Julia Royer</auteur>
<auteur>Claude Rouleau</auteur>
</auteurs>
<titre>Le printemps</titre>
</notice>
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="notice/titre" /></title>
</head>
<body>
<xsl:apply-templates select="notice/accès" />
</body>
</html>
</xsl:template>
<xsl:template match="accès">
<p>L'accès à cette notice
<xsl:choose>
<xsl:when test="restreint">est</xsl:when>
<xsl:otherwise>n'est pas</xsl:otherwise>
limité.</p>
</xsl:template>
![Page 36: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/36.jpg)
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 36
Extrant de la transformation XSLT
<html>
<head>
<title>Le printemps</title>
</head>
<body>
<p>L'accès à cette notice
est
limité.
</p>
</body>
</html>
![Page 37: INU3011 Documents structurésCopyright © 2010-2020 Yves Marcoux - Reproduction interdite 10 Attribut dont la valeur varie d'un document à l'autre](https://reader033.vdocuments.us/reader033/viewer/2022041921/5e6be3fd3160165d82646b6d/html5/thumbnails/37.jpg)
… comme on peut voir !
Copyright © 2010-2020 Yves Marcoux - Reproduction interdite 37
On a remplacé deux gabarits par un seul, éliminant
par le fait même la redondance qu'il y avait entre les deux