Points de trace
Les points de trace vous permettent de tracer le contenu généré par une instruction XSLT. Dans la capture d’écran ci-dessous, chaque point de trace (jusqu’à ce point dans la session de débogage) est recensé dans l’onglet Trace de la fenêtre de trace. Sélectionnez un des items de trace pour afficher le contenu XSLT généré au point de trace. Le contenu sera affiché dans le volet Résultat à droite.
La capture d’écran ci-dessus affiche que deux points de trace ont été définis : (i) dans les instructionson the xsl:variable and the xsl:value-of. Puisque ces deux instructions apparaissent à l’intérieur d’une instruction xsl:for-each qui sélectionne l’élément n1:Office, le processeur effectue des boucles à travers les éléments n1:Office du document XML. Pour chaque élément n1:Office, la variable $office sera définie à la valeur de l’élément enfant n1:Name (de l’élément actuel n1:Office). L’instruction xsl:value-of effectue les sorties de la valeur $office de la variable (qui sera celle de l’élément n1:Name).
Dans la capture d’écran, le débogueur a progressé via deux éléments n1:Office. Les instructions xsl:variable et xsl:value-of sont recensées pour chacun des deux éléments n1:Office. Sélectionnez un des quatre items pour afficher, dans le volet Result, le résultat généré par l’instruction spécifique.
Vous pouvez définir autant de points de trace que vous voulez. Lorsque le débogueur progresse à travers le document XSLT, tous les points de trace rencontrés seront recensés dans l’onglet Trace, et vous pouvez sélectionner toute instruction recensée pour voir le résultat qu’il génère.
Points importants
Veuillez prendre note des points suivants :
•Les points de trace peuvent être définis (i) dans des instructions XSL et résultats litéraux dans des feuilles de style XSLT et (ii) sur des nœuds dans des documents XML et XQuery.
•Les points de trace ne peuvent pas être définis sur des nœuds fermants.
•Un point de trace est affiché en tant ligne pointillée bleu.
•Il est possible de définir un point de trace et un point de trace pour la même instruction/nœud. L’instruction/le nœud est ensuite marqué en combinant les lignes pointillées bleues et rouges (voir le capture d’écran ci-dessus).
•Les résultats sont affichés dans la fenêtre Trace une fois que l’instruction tracée a été complétée.
•Les points de trace qui ont été définis pour un document restent dans ce document jusqu'à ce qu'il soit fermé. Si vous basculez vers un aperçu qui n’est pas un Mode Texte ou Mode Grille, les points de trace seront supprimés.
•Vous pouvez également utiliser un point de trace pour voir quel résultat serait généré par une expression XPath qui a un nœud de point de trace comme son nœud contexte. Vous trouverez ci-dessous la description de la procédure à suivre.
Insérer et supprimer des points de trace
Les points de trace peuvent être définis dans le Mode Texte et le Mode Grille Placez le curseur où vous souhaitez insérer le point de trace - ou dans le point de trace si vous souhaitez le supprimer - puis, suivez une des instructions suivantes :
•Sélectionnez XSL/XQuery | Insérer/supprimer le point de trace.
•Appuyez sur Shift+F9.
•Cliquez avec la touche de droite et sélectionnez Points d’arrêt/points de trace | Insérer/Supprimer le Point de trace .
Pour supprimer un point de trace, vous pouvez également utiliser le dialogue Points d’arrêt/Points de trace XSLT (décrit ci-dessous).
Dialogue Points d'arrêt/Points de trace XSLT
Accédez au dialogue XSLT Breakpoints/Tracepoints (voir la capture d’écran ci-dessous) en cliquant soit sur la commande de menu XSL/XQuery | Breakpoints/Tracepoints... ou sur l’icône de la barre d’outils de la commande.
Le dialogue XSLT Breakpoints/Tracepoints fournit les fonctions suivantes :
•Recensez tous les points d’arrêt et points de trace dans tous les documents XML, XSLT et XQuery actuellement ouverts.
•Modifiez un point de trace et et vice versa, en utilisant les boutons flèches entre les volets respectifs et en cliquant sur OK quand vous avez terminé.
•Désactivez/activez un point d’arrêt ou point de trace en décochant/cochant respectivement sa case à cocher et cliquez sur OK quand vous avez terminé. Désactiver un point d’arrêt / point de trace vous permet de l’ignorer sans avoir à le supprimer.
•Supprimez une ou tous les points d’arrêt / points de trace en cliquant sur le bouton respectif, puis en cliquant sur OK quand vous avez terminé.
•Allez directement au point d’arrêt / point de trace dans le document respectif et éditez le document. Cliquez sur le bouton respectif Éditer Code (voir la capture d’écran ci-dessous).
•Définir une expression XPath sur un point de trace pour vérifier la valeur que renvoie l’expression. Vous trouverez ci-dessous la description de la procédure à suivre.
Définir une expression XPath sur un point de trace
Si vous définissez une expression XPath sur un point de trace, le point de trace ne renvoie pas le contenu généré par l’instruction XSLT correspondante. À la place, elle renvoie le résultat d’évaluation de l’expression XPath par rapport au nœud contexte du point de trace. Ce résultat est affiché dans la fenêtre Trace.
Par exemple, dans la capture d’écran ci-dessous, nous avons défini trois points de trace. Le premier point de trace (à la ligne 21) a comme son nœud contexte le nœud parent de l’élément n1:Office Les deux autres points de trace, car ils sont tous deux à l’intérieur de l’instruction xsl:for-each, auraient tous deux l’élément n1:Office comme leurs nœuds contexte respectifs.
Maintenant, disons que nous définissons, dans un dialogue XSLT Breakpoints/Tracepoints (voir ci-dessus), les expressions XPath pour chacun des trois points de trace tels qu’affichés dans la capture d’écran ci-dessous. Notez que le nœud contexte du premier point de trace est le nœud parent de l’élément n1:Office, qui nous permet de compter les éléments n1:Office comme nœuds enfant. Pour le deuxième point de trace, où le nœud contexte est l’élément n1:Office, nous pouvons compter les éléments enfant n1:Department.
En exécutant le débogueur (XSL/XQuery | Start Debugger), les résultats des expressions XPath seront affichés dans la fenêtre de Trace (voir la capture d’écran ci-dessous).
Veuillez prendre note des points suivants :
•Puisqu’il y a trois éléments n1:Office dans notre exemple, la boucle xsl:for-each est exécutée une fois pour chacun des éléments n1:Office. De manière conséquente, les deux autres points de trace à l’intérieur de la boucle sont évalués pour chaque bureau et renvoient les données correspondant aux bureaux respectifs.
•L’expression XPath du point de trace xsl:for-each est évalué lorsque le traitement de l’instruction est terminé.