valida - ¿Cuál es la diferencia entre los prefijos de exclusión de resultados y el prefijo de elemento de extensión en la declaración de espacio de nombres XSLT?
xsl curso (1)
Para usar funciones EXSLT como la del espacio de nombres http://exslt.org/common
, no necesita el atributo de extension-element-prefix
. Esto solo es necesario si desea usar elementos de extensión como func:function
en el espacio de nombres http://exslt.org/functions
. El atributo extension-element-prefix
simplemente indica que cualquier elemento con ese prefijo no son elementos de resultados literales sino más bien instrucciones de extensión además de las instrucciones definidas por el lenguaje XSLT.
En cuanto exclude-result-prefixes
, entendió que, de acuerdo, ayuda a evitar cualquier declaración de espacio de nombres en sus elementos de resultados para los espacios de nombres declarados y utilizados en la hoja de estilo únicamente para seleccionar nodos en expresiones de ruta o patrones de coincidencia o para insertar elementos de extensión.
¿Cuál es la diferencia entre exclude-result-prefixes
y el extension-element-prefix
? Ambos se utilizan en el encabezado de XSLTs. He encontrado el extension-element-prefix
mientras uso EXSLT y el sitio web de EXSLT. Howto dice que el extension-element-prefix
se usa para "evitar que los espacios de nombres de extensión se impriman en el árbol de resultados".
Pero esto no es cierto (usando libxslt). Solo exclude-result-prefixes
elimina el espacio de nombres de extensión. Entonces, ¿por qué necesito el extension-element-prefix
?
Muestra:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common" version="1.0"
extension-element-prefix="exsl">
<xsl:template match="/">
<blabla/>
</xsl:template>
</xsl:stylesheet>
Mi salida con libxslt (xsltproc):
<?xml version="1.0"?>
<blabla xmlns:exsl="http://exslt.org/common"/>