Cette leçon examine de façon plus détaillée le modèle d'entrée JET, comment utiliser des expressions XPath pour y naviguer, et comment des actions JET sont liées au modèle d'entrée.
Pourquoi et quand exécuter cette tâche
Modèle d'entrée JET Les modèles d'entrée que vous créez en créant des transformations JET ont les caractéristiques suivantes :
- Le modèle est hiérarchique et a un seul élément racine
- Chaque type d'élément du modèle peut contenir des attributs qui ont des valeurs chaîne.
- Le confinement des éléments spécifie toujours une cardinalité de zéro ou d'un nombre supérieur à
zéro
Les capacités du modèle sont délibérément restrictives dans le but de faciliter la création rapide de transformations modèle en texte sans que l'utilisateur soit obligé d'avoir une connaissance approfondie de la conception du métamodèle.
Traitement du modèle par des transformations JET et appel d'actions
L'éditeur de création JET génère du code pour traiter le modèle d'entrée. Ce code se trouve dans le canevas main.jet et a les caractéristiques suivantes :
- Le code généré effectue un parcours en profondeur du modèle.
- Le code traite le modèle deux fois : la première itération évalue les expressions des attributs dérivés. La seconde itération appelle des actions JET qui créent des projets, des dossiers et des fichiers. Les actions JET qui créent des fichiers sont appelées actions de fichier JET et elles appellent des canevas JET.
- Lors du traitement, chaque élément du modèle est affecté à une variable XPath.
Le nom de cette variable est défini dans la vue Propriétés pour le type d'élément qui est visible dans la zone d'édition. Par défaut, le nom de la variable est identique au nom de l'élément du modèle. Vous pouvez distinguer la variable du nom de l'élément grâce au fait que les variables XPath sont toujours préfixées d'un signe dollar ($) dans une expression XPath.
- Lors du traitement d'un élément, la première itération calcule les attributs dérivés ; la seconde itération exécute les actions JET, puis traite les éléments enfants du modèle.
- Les variables XPath associées à l'élément en cours et tous ses éléments parents sont disponibles lors du calcul des attributs dérivés et lors de l'appel des actions JET. Par conséquent, tous les calculs d'attributs dérivés, toutes les actions et tous les canevas JET appelés par une action de fichier JET peuvent référencer l'élément en cours de traitement ou l'un de ses éléments parents à l'aide d'une variable XPath.
Par exemple, considérons le modèle de ce module. La figure suivante montre le contenu du volet Schéma d'entrée et actions de sortie.
L'action appelée "Créer le fichier : letter.html" et le modèle JET associé (templates/letter.html.jet) sont appelés chaque fois qu'un élément "mailing" est rencontré sous l'élément racine.
L'action et le canevas ont tous deux accès aux deux variables XPath : $mailing et $root. Les paramètres de l'action et les remplacements de texte peuvent utiliser tous les attributs appartenant aux types des éléments appelés "mailing" et "root".
Expressions XPath et changement de nom des éléments du modèle
Les expressions XPath créées par la fonctionnalité de création JET ont toujours la forme $variable/@attribut. La fonctionnalité de création JET restructure de telles expressions si le nom de la variable ou le type d'élément sont renommés. Cependant, cette restructuration ne s'étend pas aux canevas JET.
Ainsi, le fait de renommer une variable ou un type d'élément dans l'éditeur de création JET invalide toute expression XPath du canevas JET qui utilise l'ancien nom de la variable.