XSLT 2.0
Temas de este apartado:
•Especificaciones con las que cumple el motor
•Compatibilidad con versiones antiguas
•Comportamiento propio de esta implementación
Especificaciones
El motor XSLT 2.0 de RaptorXML+XBRL Server cumple con la recomendación XSLT 2.0 del 23 de enero de 2007 y la recomendación XPath 2.0 del 14 de diciembre de 2010, ambas del W3C.
Compatibilidad con versiones antiguas
El motor XSLT 2.0 es compatible con versiones previas. Esto es relevante cuando se utiliza el motor XSLT 2.0 (parámetro de la interfaz de la línea de comandos --xslt=2) para procesar una hoja de estilos o instrucción XSLT 1.0. Tenga en cuenta que los resultados obtenidos con el motor XSLT 1.0 pueden ser diferentes a los obtenidos con el motor XSLT 2.0 en modo de compatibilidad con versiones antiguas.
Espacios de nombres
En su hoja de estilos XSLT 2.0 debe declarar estos espacios de nombres para poder usar los constructores de tipo y las funciones disponibles en XSLT 2.0. Los prefijos que aparecen a continuación son los que se suelen usar, pero puede usar otros prefijos si quiere.
Espacio de nombres | Prefijo | URI del espacio de nombres |
Tipos XML Schema | xs: | http://www.w3.org/2001/XMLSchema |
Funciones XPath 2.0 | fn: | http://www.w3.org/2005/xpath-functions |
Estos espacios de nombres se suelen declarar en el elemento xsl:stylesheet o en el elemento xsl:transform:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
...
</xsl:stylesheet>
Es necesario tener en cuenta que:
•El motor XSLT 2.0 utiliza el espacio de nombres Funciones XPath 2.0 y XQuery 1.0 como espacio de nombres de funciones predeterminado. Esto significa que puede usar funciones XPath 2.0 y XSLT 2.0 en su hoja de estilos sin prefijos. Si declara el espacio de nombres Funciones XPath 2.0 en su hoja de estilos con un prefijo, podrá usar el prefijo asignado en la declaración.
•Cuando se usan constructores de tipo y tipos del espacio de nombres XML Schema, el prefijo utilizado en la declaración de espacio de nombres se debe usar en la llamada al constructor de tipo (p.ej. xs:date).
•Algunas funciones XPath 2.0 se llaman igual que algunos tipos de datos de XML Schema. Por ejemplo, las funciones XPath fn:string y fn:boolean y los tipos de datos de XML Schema xs:string y xs:boolean. Por tanto, si usa la expresión string('Hello'), la expresión se evalúa como fn:string('Hello') y no como xs:string('Hello').
Compatibilidad con esquemas
El motor XSLT 2.0 está preparado para esquemas de modo que puede usar tipos de esquema definidos por el usuario y la instrucción xsl:validate.
Comportamiento propio de esta implementación
Más abajo puede ver cómo se ocupa el motor XSLT 2.0 de algunos aspectos de algunas de las funciones XSLT 2.0 relacionadas con esta implementación.
xsl:result-document
También son compatibles estas codificaciones específicas de Altova: x-base16tobinary y x-base64tobinary.
function-available
Esta función mira si hay funciones del ámbito disponibles (funciones XSLT, XPath y de extensión).
unparsed-text
El atributo href acepta (i) rutas de acceso relativas para archivos que estén en la carpeta del URI base y (ii) rutas de acceso absolutas con o sin el protocolo file://. También son compatibles estas codificaciones específicas de Altova: x-binarytobase16 y x-binarytobase64. Ejemplo: xs:base64Binary(unparsed-text('chart.png', 'x-binarytobase64')).
unparsed-text-available
El argumento href acepta (i) rutas de acceso relativas para archivos que estén en la carpeta del URI base y (ii) rutas de acceso absolutas con o sin el protocolo file://. También son compatibles estas codificaciones específicas de Altova: x-binarytobase16 y x-binarytobase64.
Nota: | Estos valores de codificación estaban implementados en el ya descatalogado AltovaXML pero ya no se utilizan (son obsoletos): base16tobinary, base64tobinary, binarytobase16 y binarytobase64. |