L'instruction <xsl:stylesheet> est l'élément racine des feuilles de style.

<xsl:stylesheet...>
   ...
</xsl:stylesheet>

Un synonyme existe pour cet élément racine, il s'agit de <xsl:transform>. Ce dernier possède la même fonction et les mêmes attributs.

<xsl:transform...>
   ...
</xsl:transform>

Par convention, <xsl:transform> peut être utilisé pour les feuilles de style de transformation et <xsl:stylesheet> pour celles de formatage. Mais cela n'a aucun caractère obligatoire.

Cet élément définit la version du langage XSL utilisé.

<xsl:stylesheet version="1.0">

L'espace de noms est également déclaré dans cet élément.
D'ailleurs, plusieurs espaces de noms peuvent être indiqués dans l'élément <xsl:stylesheet>.

<xsl:stylesheet 
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  xmlns:html="http://www.w3.org/TR/REC-html40">
   ...
</xsl:stylesheet>

Cet élément, étant placé au plus haut niveau hiérarchique, ne peut être contenu dans une autre instruction.

En conséquence, l'élément racine peut contenir des éléments dont l'espace de noms est différent.

L'élément <xsl:stylesheet> peut contenir les types d'éléments suivants :

L'ordre d'apparition des éléments est indifférent ,hormis pour <xsl:import> qui doit impérativement se trouver immédiatement après l'élément <xs:stylesheet>.

Les attributs
Attribut Description
id=identificateur permet de repérer la feuille de style par un identificateur.
extension-element-prefixes="liste"* représente une liste de préfixes d'espace de noms.
exclude-result-prefixes="liste"* exclut une liste de préfixes d'espaces de noms.
version="number" indique la version du langage XSL utilisé.
xmlns:prefixe="URI" spécifie le ou les préfixes d'espace de noms à utiliser dans la feuille de style.

* Une liste de préfixes comme html: ou xhtml: séparés par des espaces blancs.

Exemple : [voir]
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" 
                   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" media-type="text/html; charset=ISO-8859-1"/>
  <xsl:param name="valeur">XML et XSL</xsl:param>
  <xsl:template match="/">
  <html>
      <head>
        <title>
        La logithèque : 
            la catégorie <xsl:value-of select="$valeur"/>
        </title>
      </head>
      <body>
        <h2>
        La logithèque : 
            la catégorie <xsl:value-of select="$valeur"/>
        </h2>
        <xsl:for-each 
                    select="logitheque/categorie[@nom=$valeur]/logiciel">
          <xsl:variable name="url" select="editeur/@lien"/>
          <h3>
            <xsl:value-of select="nom"/> 
              (<xsl:value-of select="langue"/>)
          </h3>
          <p><xsl:value-of select="commentaire"/></p>
          <h4>
            <a href="{$url}"><xsl:value-of select="editeur"/></a>
          </h4>
          <u>Prix : </u><br/>
          <p>
            <xsl:value-of select="prix"/> 
              <xsl:value-of select="prix/@monnaie"/>
          </p>
        </xsl:for-each>
      </body>
  </html>
  </xsl:template>
</xsl:stylesheet>
En savoir plus :
Découvrez cet élément sur le site du W3CDécouvrez cet élément sur le site de Microsoft