Elemento <xsl:fallback>

El elemento <xsl:fallback> ha sido diseñado para tratar elementos XSLT que pueden tratarse con el analizador: por ejemplo, elementos que forman parte de una nueva versión o una extensión no reconocida. El funcionamiento del elemento <xsl:fallback> consiste en recurrir al contenido de una plantilla que proporciona un sustituto razonable para el comportamiento del nuevo elemento.

<xsl:fallback>
</xsl:fallback>

Atributos

Ninguna

Información del elemento

Número de apariciones

Ilimitado

Elementos primarios

xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:template, xsl:variable, xsl:when, xsl:with-param, elementos resultantes

Elementos secundarios

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, elementos resultantes

Comentarios

Cuando se carga por primera vez un documento XSLT, el preanalizador de XSLT realiza una validación en todos los elementos XSLT. Si la versión del elemento <xsl:stylesheet> es superior a la admitida por el analizador, éste ejecutará el elemento secundario <xsl:fallback> de cualquier elemento desconocido que se encuentre. Si un elemento <xsl:fallback> no tiene contenido, el analizador no realizará ninguna acción. Si se admite un elemento, nunca se crearán instancias para las plantillas de sus elementos secundarios de <xsl:fallback>. Si la versión proporcionada en la hoja de estilo es la misma que la admitida por el navegador, se llamará un error.

Los elementos de reserva forman parte del mecanismo de procesamiento de avance que utiliza XSLT para gestionar actualizaciones. Al crear formas alternativas para tratar un comando si no se admite un elemento, el procesamiento de avance garantiza que el código utilizado es relativamente robusto y no tiene en cuenta las diferencias en la conformidad del analizador.

Además de tratar las diferencias de las versiones, el mecanismo de reserva puede utilizarse también para gestionar elementos definidos por extensiones de espacio de nombres. Como suele ser muy difícil añadir funcionalidad a la especificación básica, las extensiones de espacio de nombres permiten que los desarrolladores definan una funcionalidad superior a la establecida por la especificación de XSLT. Si no se admite el espacio de nombres (no se proporciona una definición para el espacio de nombres) o no se define una función o elemento de espacio de nombre, puede utilizarse el mecanismo de reserva para proporcionar funcionalidad alternativa.

Para garantizar que la extensión se interpreta dentro de la operación de XSLT, deberá configurar el atributo extension-element-prefixes del elemento <xsl:stylesheet> de manera que incluya el nombre del prefijo que debe ser interpretado. Además, es necesario declarar el espacio de nombre para ese prefijo.

En los temas siguientes se muestra un ejemplo de <xsl:fallback>.