Elemento <xsl:stylesheet>

Especifica el elemento de documento de un archivo XSLT, que contiene todos los demás elementos XSLT.

Especifica el elemento de documento de un archivo XSLT, que contiene todos los demás elementos XSLT. Este elemento es sinónimo del elemento <xsl:transform>.

<xsl:stylesheet
  id = id
  extension-element-prefixes = NCNames
  exclude-result-prefixes = NCNames
  version = number>
</xsl:stylesheet>

Atributos

  • id
    Un identificador único para facilitar la incrustación de archivos XSLT.

  • extension-element-prefixes
    El espacio de nombres que se debe utilizar como espacio de nombres de una extensión. El valor es una lista de prefijos de espacios de nombres separados por espacios en blanco. El espacio de nombres enlazado a cada prefijo se designa como un espacio de nombres de una extensión. El espacio de nombres predeterminado (tal y como declara xmlns) puede designarse como un espacio de nombres de una extensión si se incluye #default en la lista de prefijos de espacios de nombres. La designación de un espacio de nombres como un espacio de nombres de una extensión es efectiva dentro del subárbol de la hoja de estilos cuya raíz comienza en el elemento con extension-element-prefixes; un subárbol cuya raíz comienza en un elemento <xsl:stylesheet> no incluye una hoja de estilos importada o incluida en un elemento secundario de dicho elemento <xsl:stylesheet>.

  • exclude-result-prefixes
    El identificador URI de espacio de nombres como un espacio de nombres excluido. El valor es una lista de prefijos de espacios de nombres separados por espacios en blanco. El espacio de nombres enlazado a cada prefijo se designa como un espacio de nombres excluido. El espacio de nombres predeterminado (tal y como declara xmlns) puede designarse como un espacio de nombres excluido si se incluye #default en la lista de prefijos de espacios de nombres. La designación de un espacio de nombres como un espacio de nombres excluido es efectiva dentro del subárbol de la hoja de estilos cuya raíz comienza en el elemento con exclude-result-prefixes; un subárbol cuya raíz comienza en un elemento <xsl:stylesheet> no incluye una hoja de estilos importada o incluida en un elemento secundario de dicho elemento <xsl:stylesheet>.

  • version
    Requerido. La versión de XSLT que precisa el archivo XSLT. El valor debe establecerse en "1.0" para esta versión de XSLT.

Información de elemento

Número de apariciones

One

Elementos primarios

(No hay elementos primarios).

Elementos secundarios

xsl:attribute-set, xsl:import, xsl:include, xsl:output, xsl:param, xsl:template, xsl:variable, msxsl:script

Comentarios

Todos los archivos XSTL deben declarar <xsl:stylesheet> como su elemento de documento.

Una hoja de estilos puede utilizar una serie de declaraciones de reglas de plantilla (<xsl:template>) para prescribir transformaciones explícitas en un conjunto de datos. Puede utilizar <xsl:include> o <xsl:import> para incorporar otra hoja de estilos; esto le permite volver a utilizar reglas de plantillas existentes y comprobadas. La hoja de estilos también puede admitir las variables globales (<xsl:param>) y las constantes con nombres (<xsl:variable>) que se van utilizar durante las transformaciones. El elemento <xsl:param> puede utilizarse para pasar parámetros a una hoja de estilos. Mediante la utilización del elemento de extensión, <msxsl:script>, una hoja de estilos puede incluso permitir que se implementen funciones personalizadas, aunque esta práctica no suele ser recomendable.

El siguiente ejemplo muestra un elemento <xsl:stylesheet> con varios espacios de nombres comunes.

Una hoja de estilos XSLT debe declarar al menos el espacio de nombres para la transformación de XSL. En las versiones 4.0 y posteriores de MSXML este espacio de nombres debe declararse del siguiente modo:

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

Si se procesan elementos o tipos de datos de otros espacios de nombres, la hoja de estilos también debe declarar los espacios de nombres relacionados. Por ejemplo, la siguiente declaración de hoja de estilos XSLT estipula que se deben utilizar lenguajes XML adicionales, que se definen para extensiones de Microsoft y objetos de formato XSL (XSL-FO).

<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:msxsl="urn:schemas-microsoft-com:xslt"
      xmlns:fo="http://www.w3.org/1999/XSL/Format">

Ejemplo

En este ejemplo se muestra un archivo XSLT completo que contiene un conjunto de plantillas. La plantilla raíz (match="/") define la estructura del documento de salida en su conjunto y las otras plantillas definen la estructura de los elementos <name>, <address> y <phone>. El archivo de salida HTML se generó mediante el uso de msxml.exe en el símbolo del sistema.

Archivo XML (customers.xml)

<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="customers.xsl"?>
<customers>
   <customer>
      <name>John Smith</name>
      <address>123 Elm St.</address>
      <phone>(123) 456-7890</phone>
   </customer>
   <customer>
      <name>Mary Jones</name>
      <address>456 Oak Ave.</address>
      <phone>(156) 789-0123</phone>
   </customer>
</customers>

Archivo XSLT (customers.xsl)

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

<xsl:template match="/">
  <HTML>
    <BODY>
      <TABLE>
        <xsl:for-each select="customers/customer">
          <TR>
            <xsl:apply-templates select="name" />
            <xsl:apply-templates select="address" />
            <xsl:apply-templates select="phone" />
          </TR>
        </xsl:for-each>
      </TABLE>
    </BODY>
  </HTML>
</xsl:template>

<xsl:template match="name">
  <TD STYLE="font-size:14pt font-family:serif">
    <xsl:apply-templates />
  </TD>
</xsl:template>

<xsl:template match="address">
  <TD> <xsl:apply-templates /> </TD>
</xsl:template>

<xsl:template match="phone">
  <TD> <xsl:apply-templates /> </TD>
</xsl:template>

<xsl:template match="text()">
  <xsl:value-of select='.'/>
</xsl:template>

</xsl:stylesheet>

Salida

Este es el resultado con formato:

Resultado con formato

Este es el resultado del procesador:

<HTML>
<BODY>
<TABLE>
<TR>
<TD STYLE="font-size:14pt font-family:serif">John Smith</TD>
<TD>123 Elm St.</TD>
<TD>(123) 456-7890</TD>
</TR>
<TR>
<TD STYLE="font-size:14pt font-family:serif">Mary Jones</TD>
<TD>456 Oak Ave.</TD>
<TD>(156) 789-0123</TD>
</TR>
</TABLE>
</BODY>
</HTML>

Vea también

Referencia

Elemento <xsl:transform>