Importer des fonctions XSLT personnalisées
Vous pouvez étendre les bibliothèques de fonction XSLT 1.0 et 2.0 disponibles dans MapForce avec vos propres fonctions personnalisées, si vos fonctions personnalisées retournent des types simples.
Seules des fonctions personnalisées qui retournent des types de données simples (par exemple, strings) sont prises en charge. |
Pour importer des fonctions depuis un fichier XSLT :
1.Cliquez sur la touche Ajouter/Supprimer des bibliothèques en bas de la fenêtre Bibliothèques. La fenêtre Gérer les Bibliothèques s’ouvre (voir la capture d'écran ci-dessous).
2.Pour importer des fonctions en tant que bibliothèque locale (uniquement dans le cadre du document actuel), cliquez sur Ajouter sous le nom actuel du mappage. Pour importer les fonctions en tant que bibliothèque globale (au niveau du programme), cliquez sur Ajouter à côté des Importations Bibliothèques globales. Lorsque vous importez une bibliothèque localement, vous pouvez définir le chemin du fichier de bibliothèque pour qu'il soit relatif au fichier de mappage. Avec des bibliothèques importées globalement, le chemin de la bibliothèque importée est toujours absolu.
Chercher le fichier .xsl qui contient les fonctions, et cliquer sur Ouvrir. Un message apparaît vous informant qu'une nouvelle bibliothèque a été ajoutée.
Les fichiers XSLT importés apparaissent sous forme de bibliothèques dans la fenêtre Bibliothèques, et affichent tous les modèles nommés en tant que fonctions sous le nom de bibliothèque. Si vous ne voyez pas la bibliothèque importée, veuillez vous assurer que vous avez bien sélectionné XSLT en tant que langage de transformation. Voir aussi Gérer les Bibliothèques de fonction.
Veuillez noter que :
•Pour pouvoir importer dans MapForce, les fonctions doivent être déclarées en tant que modèles nommés conformément aux spécifications XSLT dans le fichier XSLT. Vous pouvez aussi importer des fonctions qui se produisent dans un document XSLT 2.0 sous la forme de <xsl:function name="MyFunction">. Si le fichier XSLT importé ou comprend d'autres fichiers XSLT, alors ces fichiers et fonctions XSLT seront également importés.
•Les connecteurs d'entrée mappables des fonctions personnalisées importées dépendent du nombre de paramètres utilisés dans l'appel du modèle ; des paramètres optionnels sont aussi pris en charge.
•Les espaces de noms sont pris en charge.
•Si vous effectuez des mises à jour dans des fichiers XSLT que vous avez déjà importé dans MapForce, des modifications seront détectées automatiquement et MapForce vous invite à recharger les fichiers.
•Lorsque vous écrivez des modèles nommés, assurez-vous que les instructions XPath utilisés dans le modèle sont liés dans les espaces de noms corrects. Pour voir les liaisons d'espace de noms du mappage, consulter le code XSLT généré.
Types de données dans XPath 2.0
Si votre document XML référence un schéma XML et est valide, vous devez construire explicitement ou lancer des types de données qui ne sont pas implicitement convertis dans le type de données requis par une opération.
Dans le XPath 2.0 Data Model utilisé par l'Altova XSLT 2.0 Engine, toutes les valeurs de nœud atomisées depuis le document XML sont attribuées au type de données xs:untypedAtomic. Le type xs:untypedAtomic fonctionne bien avec des conversions de type implicite.
Par exemple,
•l'expression xs:untypedAtomic("1") + 1 résulte dans une valeur de 2 parce que la valeur xdt:untypedAtomic est implicitement promotée dans xs:double par l'opérateur d'addition.
•Les opérateurs arithmétiques promeuvent implicitement des opérandes dans xs:double.
•Les opérateurs de comparaison de valeur promeuvent des opérandes dans xs:string avant la comparaison.
Voir aussi :
Exemple : Ajouter des fonctions XSLT 1.0 personnalisées
Exemple : Totaliser les valeurs de nœud