Algorithme Outline HTML5
Le but de cet exercice est de se familiariser avec l'algorithme Outline HTML5 et d'en comprendre les mécanismes de base.
On dispose du squelette HTML5 suivant :
Visualiser le sectionnement généré par l'algorithme Outline HTML5 en utilisant l'un des deux outils suivants :
Pour l'instant, il n'y a qu'une section ("1. Document" ou 1. "Untitled section") créée par l'élément <body>.
Question
Question
Question
Utiliser les balises de section HTML5 pour obtenir le plan suivant de manière purement explicite, puis en mixant explicite/implicite ;
Instruments
Instruments à cordes
Violon
Piano
Harpe
Instruments à vent
Haut-bois
Cor
Question
Grâce à l'algorithme Outline HTML5, les transclusions sont facilitées car le plan du document est dynamiquement calculé selon le plan de chaque section.
On dispose du fichier instruments.html XHTML5 suivant :
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<h1>Instruments</h1>
<section>
<h2>Instruments à cordes</h2>
<h3>Violon</h3>
<h3>Piano</h3>
<h3>Harpe</h3>
</section>
<section>
<h2>Instruments à vent</h2>
<h3>Haut-bois</h3>
<h3>Cor</h3>
</section>
<div class="transclusion" id="instruments-percussions" data-url="percu.xml"></div>
</body>
</html>
<?xml-stylesheet type="text/xsl" href="instruments.xsl"?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> </head> <body> <h1>Instruments</h1> <section> <h2>Instruments à cordes</h2> <h3>Violon</h3> <h3>Piano</h3> <h3>Harpe</h3> </section> <section> <h2>Instruments à vent</h2> <h3>Haut-bois</h3> <h3>Cor</h3> </section> <div class="transclusion" id="instruments-percussions" data-url="percu.xml"></div> </body> </html>
Le document percus.html suivant :
<section>
<h1>Percussions</h1>
<h2>Tambour</h2>
<h2>Triangle</h2>
<h2>Claves</h2>
</section>
<?xml version="1.0" encoding="UTF-8"?> <section> <h1>Percussions</h1> <h2>Tambour</h2> <h2>Triangle</h2> <h2>Claves</h2> </section>
Compléter le fichier instruments.xsl donné ci-dessous pour faire la transclusion du fichier percus.html dans le fichier instruments.html. Observer l'Outline généré en regard des rangs des balises de titre utilisés. Conclure.
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:character-map name="doctype">
<xsl:output-character character="<" string="<"/>
<xsl:output-character character=">" string=">"/>
</xsl:character-map>
<xsl:output
method="xml"
encoding="utf-8"
indent="yes"
omit-xml-declaration="yes"
use-character-maps="doctype"
/>
<!-- Transformation identité -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- Génération du DOCTYPE -->
<xsl:template match="html">
<xsl:text><!DOCTYPE html>
</xsl:text>
<xsl:element name="html">
<xsl:apply-templates select="@*|node()"/>
</xsl:element>
</xsl:template>
<!-- Pas de processing instruction -->
<xsl:template priority="1" match="processing-instruction()" />
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:character-map name="doctype"> <xsl:output-character character="<" string="<"/> <xsl:output-character character=">" string=">"/> </xsl:character-map> <xsl:output method="xml" encoding="utf-8" indent="yes" omit-xml-declaration="yes" use-character-maps="doctype" /> <!-- Transformation identité --> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <!-- Génération du DOCTYPE --> <xsl:template match="html"> <xsl:text><!DOCTYPE html> </xsl:text> <xsl:element name="html"> <xsl:apply-templates select="@*|node()"/> </xsl:element> </xsl:template> <!-- Pas de processing instruction --> <xsl:template priority="1" match="processing-instruction()" /> </xsl:stylesheet>