Élément <xsl:element>

Crée un élément de sortie et lui donne le nom spécifié.

<xsl:element
  name = "element-name"  
  namespace = "uri-reference"
  use-attribute-sets = QName
</xsl:element>

Attributs

  • name
    Obligatoire. Nom de l'élément à créer. Si cette valeur est un Noms qualifiés, le nœud d'élément est créé dans l'espace de noms actuellement lié au préfixe, sauf s'il est remplacé par un attribut namespace. La valeur de l'attribut name est interprétée comme un modèle de valeur d'attribut — des expressions entre accolades sont évaluées et converties en chaînes, comme dans <xsl:value-of>. Cela permet de calculer le nom de l'élément ou de l'obtenir du XML source.
  • namespace
    URI d'espace de noms de l'élément créé. Si l'attribut name contient un nom qualifié, le préfixe spécifié sera lié à l'espace de noms spécifié dans l'attribut namespace. Cela pourrait exiger des déclarations d'espaces de noms supplémentaires lors de la sérialisation. La valeur namespace est interprétée comme un modèle de valeur d'attribut.
  • use-attribute-sets
    Liste d'ensembles d'attributs, séparés par des espaces, spécifiée par un Noms qualifiés. La spécification de cet attribut déclare chaque attribut dans chaque ensemble d'attributs de la liste.

Informations sur l'élément

Nombre d'occurrences

Illimité

Éléments parents

xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:template, xsl:variable, xsl:when, xsl:with-param, éléments de sortie

Éléments enfants

xsl:apply-templates, xsl:attribute, xsl:call-template, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:element, xsl:for-each, xsl:if, xsl:processing-instruction, xsl:text, xsl:value-of, xsl:variable, éléments de sortie

Notes

L'élément <xsl:element> permet de créer un élément avec un nom calculé. Le nom de l'élément à créer est spécifié par un attribut name obligatoire et un attribut namespace facultatif. Le contenu de l'élément <xsl:element> est un modèle pour les attributs et les enfants de l'élément créé.

Cet élément fournit un mécanisme d'échappement pour créer des éléments avec des conflits d'espace de noms, comme XSLT même.

Exemple

L'élément <xsl:element> est nécessaire car les éléments XSLT ne peuvent pas être utilisés comme éléments de sortie. Cet exemple montre comment générer un élément <xsl:template>.

Fichier XML (item.xml)

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="element.xsl" ?>
<root>
   <item>My Item</item>
</root>

Fichier XSLT (element.xsl)

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

<xsl:template match="item">
   <xsl:element name="xsl:template">
      <xsl:attribute name="match">cost</xsl:attribute>
      <xsl:attribute name="xml:space">preserve</xsl:attribute>
      <xsl:apply-templates/>
   </xsl:element>
</xsl:template>

</xsl:stylesheet>

Sortie

Voici les données en sortie formatées :

My Item

Voici les données en sortie du processeur ; des sauts de ligne ont été ajoutés pour plus de clarté.

<?xml version="1.0"?>
<xsl:template match="cost" 
      xml:space="preserve" 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
My Item</xsl:template>