Glossaire II

Soit le schéma RelaxNG suivant permettant de représenter un glossaire.

<?xml version="1.0" encoding="UTF-8"?>
<grammar
xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
  <element name="glossaire">
    <oneOrMore>
      <ref name="Definition"/>
    </oneOrMore>
  </element>
</start>
<define name="Definition">
  <element name="definition">
    <attribute name="id"><data type="ID"/></attribute>
    <element name="terme"><text/></element>
    <element name="explication"><text/></element>
    <zeroOrMore>
      <element name="voirAussi">
        <attribute name="ref"><data type="IDREF"/></attribute>
      </element>
    </zeroOrMore>
  </element>
</define>
</grammar>

Expliquer ce qu'exprime les datatypes ID et REFID. Préciser le format que doit respecter un attribut ou un élément de type ID.

Instancier un document de type glossaire, sur une thématique au choix.

<?xml version="1.0" encoding="UTF-8"?>
<glossaire>
  <definition id="xml">
    <terme>XML</terme>
    <explication>Méta-langage...</explication>
  </definition>
  <definition id="sgml">
    <terme>SGML</terme>
    <explication>Méta-langage...</explication>
    <voirAussi ref="xml"/>
  </definition>
</glossaire>

Réaliser un programme XSLT permettant de publier les documents de type glossaire en HTML.

Utiliser les ancres en HTML pour gérer les "voir aussi" (on se limitera pour le moment à utiliser l'id comme texte de l'ancre).

Ajouter un sommaire au début du fichier HTML, permettant de pointer chaque définition.

Proposer deux implémentations une avec xsl:template mode="..." et une avec xsl:for-each.

Trier les définitions par ordre alphabétique.

Pour trier les termes par ordre alphabétique utiliser xsl:sort.

<xsl:for-each select="...">
  <xsl:sort select="..."/>
  ...
<xsl:apply-templates select="...">
  <xsl:sort select="..."/>
</xsl:apply-templates>

Pour les "voir aussi", afficher le terme de la définition plutôt que l'id.

Utiliser la fonction XPath current().

AccueilExercices > Exercices XSLT > Exercice : Glossaire II< PrécédentSuivant >