Elemento <xsl:import>
Importa otro archivo XSLT.
<xsl:import
href = "uri-reference" />
Atributos
- href
Obligatorio.Una referencia de identificador uniforme de recursos (URI) que identifica el archivo XSLT que va a importarse.
Información del elemento
Número de apariciones |
Ilimitado |
Elementos primarios |
|
Elementos secundarios |
(No hay elementos secundarios) |
Comentarios
Un archivo XSLT puede importar otro archivo XSLT mediante un elemento <xsl:import>.Importar un archivo XSLT es lo mismo que incluirlo salvo que las definiciones y reglas de plantillas en el archivo de importación tienen prioridad frente a aquellas del archivo XSLT importado.El elemento <xsl:import> tiene un atributo href cuyo valor es una referencia de URI que identifica la hoja de estilos que va a importarse.Un URI relativo se resuelve en relación con el URI base del elemento <xsl:import>.
El elemento <xsl:import> solo está permitido como elemento de nivel superior.Los elementos secundarios del elemento <xsl:import> deberán preceder a todos los elementos secundarios de un elemento <xsl:stylesheet>, incluyendo cualquier elemento secundario del elemento <xsl:include> .Cuando se utiliza <xsl:include> para incluir una hoja de estilos, cualquier elemento <xsl:import> en el documento incluido se sube de posición en él para que siga a cualquier elemento <xsl:import> existente en el documento incluido.
Los elementos <xsl:stylesheet> encontrados durante el procesamiento de una hoja de estilos que contiene elementos <xsl:import> son tratados como si formaran un árbol de importación.En el árbol de importación, cada elemento <xsl:stylesheet> tiene un secundario de importación para cada elemento <xsl:import> que contiene.Cualquier elemento <xsl:include> se resuelve antes de construir el árbol de importación.Un elemento <xsl:stylesheet> en el árbol de importación se define para tener una prioridad de importación menor que otro elemento <xsl:stylesheet> en el árbol de importación si se visitara antes de dicho elemento <xsl:stylesheet> en un recorrido de posordenado del árbol de importación (es decir, un recorrido del árbol de importación en el que un elemento <xsl:stylesheet> es visitado después de sus secundarios de importación).Cada definición y regla de plantilla tiene una prioridad de importación determinada por el elemento <xsl:stylesheet> que las contiene.
Por ejemplo, supongamos que las siguientes condiciones son verdaderas.
El archivo XSLT A importa los archivos XSLT B y C, en ese orden.
El archivo XSLT B importa el archivo XSLT D.
El archivo XSLT C importa el archivo XSLT E.
El orden de prioridad de importación (el más bajo primero) es D, B, E, C, A.
Nota
Puesto que es necesario que los elementos <xsl:import> aparezcan antes de cualquier definición o regla de plantilla, una implementación que procese los archivos XSLT importados en el punto en el que encuentra el elemento <xsl:import> encontrará definiciones y reglas de plantilla en orden ascendente en prioridad de importación.
En general, una definición o regla de plantilla con una prioridad de importación más alta tiene prioridad sobre una definición o regla de plantilla con una prioridad de importación más baja.Esto se define detalladamente para cada tipo de definición y reglas de plantilla.
Es un error si un archivo XSLT se importa a sí mismo directa o indirectamente.Aparte de esto, el caso en el que un archivo XSLT con un URI particular se importa en varios lugares no es tratado de forma especial.El árbol de importación tendrá un elemento <xsl:stylesheet> separado para cada lugar que es importado.
Nota
Si se utiliza <xsl:apply-imports>, el comportamiento podría ser diferente al comportamiento que tendría lugar si el archivo XSLT hubiera sido importado solo al lugar con la prioridad de importación más alta.
Archivo XSLT (importer.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:import href="article.xsl"/>
<xsl:import href="bigfont.xsl"/>
<xsl:attribute-set name="note-style">
<xsl:attribute name="font-style">italic</xsl:attribute>
</xsl:attribute-set>
</xsl:stylesheet>
También puede consultar el tema siguiente: