XSLT 3.0
Le moteur XSLT 3.0 de RaptorXML+XBRL Server est conforme aux Recommandation XSLT 3.0 du 8 juin 2017 et aux Recommandations XQuery 3.1 du 21 mars 2017 du World Wide Web Consortium (W3C's).
Le moteur XSLT 3.0 présente les mêmes caractéristiques spécifiques à l'implémentation que le moteur XSLT 2.0. De plus, il contient une prise en charge pour un certain nombre de nouvelles fonctions XSLT 3.0 : les fonctions et opérateurs XPath/XQuery 3.1, et la spécification XPath 3.1.
Note : | la fonction de streaming optionnelle n'est pas prise en charge actuellement. Le document complet sera chargé dans la mémoire quelle que soit la valeur de l'attribut streamable. S'il y a assez de mémoire disponible, alors : (i) le document entier sera traité - sans streaming, (ii) les constructions garanties streamables seront traitées correctement, comme si l'exécution utilisait le streaming, et (iii) les erreurs de streaming ne seront pas détectées. Dans les applis 64-bit, l'exécution non-streaming ne devrait pas représenter de problème. S'il y a tout de même un souci avec la mémoire, une solution serait d'ajouter plus de mémoire au système. |
Espaces de noms
Votre feuille de style XSLT 3.0 devrait déclarer les espaces de noms pour que vous puissiez utiliser tous les types de constructeurs et fonctions disponibles dans XSLT 3.0. Les préfixes ci-dessous sont utilisés de manière conventionnelle ; vous pourriez utiliser des préfixes alternatifs si vous le souhaitez.
Nom Espaces de noms | Préfixe | Espace de noms URI |
Types de schéma XML | xs: | http://www.w3.org/2001/XMLSchema |
Fonctions XPath/XQuery 3.1 | fn: | http://www.w3.org/2005/xpath-functions |
Fonctions Math | math: | http://www.w3.org/2005/xpath-functions/math |
Fonctions Map | map: | http://www.w3.org/2005/xpath-functions/map |
Fonctions Array | array: | http://www.w3.org/2005/xpath-functions/array |
Codes d'erreur XQuery, XSLT et XPath | err: | http://www.w3.org/2005/xpath-functions/xqt-errors |
Fonctions de sérialisation | output | http://www.w3.org/2010/xslt-xquery-serialization |
Généralement, ces espaces de noms seront déclarés dans l'élément xsl:stylesheet ou xsl:transform, tel que recensé dans la liste suivante :
<xsl:stylesheet version="3.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>
Les points suivants doivent être notés :
•Le moteur XSLT 3.0 utilise les Fonctions XPath et XQuery et l'espace de noms de Operators 3.1 (recensé dans la table ci-dessus) comme son espace de noms des fonctions par défaut. Donc vous pouvez utiliser les fonctions de cet espace de noms dans votre feuille de style sans préfixe, alors vous pouvez utiliser le préfixe en plus assigné à la déclaration.
•Quand vous utilisetz les constructeurs de type et les types depuis l'espace de noms du schéma XML, le préfixe utilisé dans la déclaration de l'espace de noms doit être utilisé lorsque le constructeur de type est appelé (par exemple, xs:date).
•Certaines fonctions XPath/XQuery ont le même nom que les types de base de données de schéma XML. Par exemple, pour les fonctions XPath fn:string et fn:boolean, il existe des types de données de schéma XML avec les mêmes noms locaux : xs:string et xs:boolean. Donc si vous deviez utiliser le string de l'expression XPath ('Hello'), l'expression évalue comme fn:string('Hello') - et non comme xs:string('Hello').