<oXygen/> XML Editor User Guide

Working with the XSLT Debugger

The following topics are present about how to follow XSLT processing and detect errors in your stylesheets:

Steps in a typical debug process

To debug a stylesheet follow the procedure:

  1. Open a stylesheet.

  2. If you are in the Editor perspective switch to the Debugger perspective with one of the actions:

    • Perspective->Debugger or the toolbar button Debugger

    • Document->XML Document->Debug scenario or the toolbar button Debug scenario

  3. Select the source XML document in the XML source selector of the Control toolbar

  4. Select the XSL document in the XSL stylesheet selector of the Control toolbar

  5. Set XSLT parameters from the button available on the Control toolbar

  6. Set one or more breakpoints.

  7. Step through the stylesheet using the buttons available on the Control toolbar: Step into, Step over, Step out, Run, Run to cursor, Run to end, Pause, Stop

  8. Examine the information in the Information Views to find the bug in the transformation process.

Using breakpoints

The <oXygen/> XSLT debugger allows you to interrupt XSLT processing to gather information about variables and processor execution at particular points.

Inserting breakpoints

To insert a breakpoint:

  1. In the XML source document or the XSLT stylesheet that you want to set a breakpoint, place your cursor on the line where you want the breakpoint to be.

  2. Select Edit-> Breakpoints->Create or directly click with the mouse the left side stripe of the editor window on the line where you want the breakpoint to be.

Removing breakpoints

To remove a breakpoint:

  • Click with the mouse the left side stripe of the editor window on the line with the breakpoint or select Edit-> Breakpoints->Remove all

Viewing processing information

Des informations détaillées sur le statut du débugger sont offertes en utilisant les vues.

Vue de nœud contextuel

Le nœud contextuel est un nœud source correspondant à l'expression XSL actuellement évaluée. Il est aussi appelé le contexte d'exécution. Le nœud contextuel change implicitement lorsque le processeur passe différentes étapes (au point où les expressions XPath sont évaluées). Ce nœud a la même valeur que l'évaluation de l'expression XPath '.' (dot) sur Vue XPath.

Figure 7.3. La vue nœud contextuel

La vue nœud contextuel

Tableau 7.1. Détails nœud contextuel

Colonne Description
Nom Nom du nœud source (XML).
Attributs/Valeur Les attributs ou valeur du nœud XML. Si des attributs existent, ils sont affichés sous la forme attributNom ="attributValeur", sinon le contenu textuel du nœud est affiché.

Vue XPath

Affiche les expressions XPath à évaluer durant le débogage. Les expressions sont évaluées dynamiquement lorsque le processeur change le contexte de sa source.

Figure 7.4. La vue XPath

La vue XPath

Tableau 7.2. Détails XWatch

Colonne Description
Expression Expression XPath à évaluer (devrait être compatible XPath 1.0 ou 2.0).
Valeur Résultat de l'évaluation de l'expression XPath. La valeur a un type (voir Valeurs possibles dans la section Vue des variables). Pour un Ensemble de nœuds le nombre de nœuds dans l'ensemble est affiché entre parenthèses.
[Important]Remarques
  • Les expressions ayant des références vers des noms de variables ne sont pas évaluées. Dans le cas d'une erreur XPath, une ligne d'erreur est renvoyée.

  • La liste des expressions n'est pas effacée à la fin de la transformation (elle est préservée durant les sessions).

  • Pour insérer une nouvelle expression, cliquez sur la dernière ligne de la colonne expressions et entrez-la. Appuyez sur Entrée sur la cellule pour confirmer.

  • Pour effacer une expression, cliquez sur sa colonne Expression et effacez son contenu. Appuyez sur Entrée pour confirmer.

  • Si le type de résultat de l'expression est un Ensemble de nœuds, vous pouvez cliquez dessus (colonne Valeur) et vous verrez sur la partie droite sa valeur (voir Vue d'ensemble de nœuds).

Vue Breakpoints

Liste tous les ensembles de breakpoints sur les documents. Une fois que vous avez mis un breakpoint vous avez une ligne pour celui-ci dans cette liste. Les breakpoints peuvent être mis à la fois sur les documents XML et XSL.

Figure 7.5. La vue Breakpoints

La vue Breakpoints

Tableau 7.3. Détails des Breakpoints

Colonne Description
Ressource Le fichier ressource où le breakpoint se trouve. Le chemin complet du fichier ressource est disponible comme aide.
Ligne Numéro de ligne à lintérieur du ressource où se trouve le breakpoint.
[Important]Breakpoint valide
  • Les breakpoints ne sont pas tous valides. Par exemple si le breakpoint est mis sur une ligne vite ou de commentaire, ou si la ligne n'est pas atteinte par le processeur example (no template to match it, line containing only an end tag), ce breakpoint est invalide.

  • Le menu contextuel sur le tableau a les options Enlever et Aller à.

  • Cliquer sur un enregistrement surligne la ligne du breakpoint dans le document.

Vue des Messages

Les instructions <xsl:message > sont une façon de signaler des situations spéciales rencontrées durant la transformation ainsi qu'une manière basique de faire le débogage. Cette vue montre tous les appels <xsl:message > exécutés par le processeur XSLT durant la transformation.

Figure 7.6. La vue des Messages

La vue des Messages

Tableau 7.4. Détails des Messages

Colonne Description
Message Contenu du Message.
Fin Signale si le processeur va terminer la transformation ou non du moment qu'il le rencontre(respectivement vrai/faux)
Ressource Fichier ressource où l'instruction <xsl:message> est définie. Le chemin complet du ressource est disponible comme aide.
[Important]Remarques
  • Cliquer sur un enregistrement du tableau surligne la ligne de déclaration <xsl:message >.

  • Les valeurs du tableau des messages peuvent être triées en cliquant sur l'en-tête de colonne correspondant (croissant, décroissant, aucun tri).

Vue de la pile

Affiche la pile d'exécution actuelle à la fois des nœuds de la source et du style. Durant la transformation deux piles sont gérées : une de nœuds du source étant traitée et l'autre pour les nœuds de feuilles de style étant traitée. <oXygen/> affiche les deux types de nœuds dans une pile commune. Les nœuds du source (XML) sont précédés par un icône de couleur rouge tandis que les nœuds de feuilles de style sont précédés par un icône de couleur verte. L'avantage de cette approche est que vous pouvez toujours voir l'étendue du source sur laquelle une instruction de feuille de style est exécutée (le dernier nœud de couleur rouge sur la pile). La pile est orientée de bas en haut.

Figure 7.7. La vue de la pile

La vue de la pile

Tableau 7.5. Détails de la pile

Colonne Description
# Numéro d'ordre, représente la profondeur du nœud (0 est la base de la pile).
Nœud XML/XSL Nœud du source ou d'un document feuille de style actuellement traité. Un nœud particulier de la pile est la racine du document, notée comme document #.
Attributs Attributs du nœud (liste des paires id ="valeur").
Ressource Fichier ressource où le nœud est situé. Le chemin complet est disponible comme aide.
[Important]Remarques
  • Cliquer sur un enregistrement de la pile surligne la position de ce nœud dans la ressource.

  • En utilisant Saxon, les élements de la feuille de style sont qualifiés avec proxy XSL, tandis qu'avec Xalan vous ne voyez que leurs noms. (exemple <xsl:template> sous Saxon et modèle sous Xalan).

  • Seul le processeur Saxon affiche les attributs des éléments.

  • Le processeur Xalan affiche les règles "intégrées".

Vue de l'historique de la trace

Habituellement les processeurs XSLT signalent les événements suivants durant la transformation :

  • entrée dans un nœud source (XML).

  • sortie d'un nœud source (XML).

  • entrée dans un nœud de feuille de style (XSL).

  • sortie d'un nœud de feuille de style (XSL).

L'historique de la trace saisit tous ces événements, vous pouvez ainsi voir comment le traitement a évolué. Les lignes d'icônes rouges montrent les nœuds de source tandis que les icônes verts montrent les nœuds de feuilles de style.

Il est possible de sauver la trace de l'élément dans un document XML strucuté. Cette fonction est disponible dans le menu contextuel de la vue. De cette façon, vous avez la possiblité de comparer les résultats de la trace depuis différentes sessions de débogage.

Figure 7.8. La vue de l'historique de la trace

La vue de l'historique de la trace

Tableau 7.6. Détails de la trace de l'historique

Colonne Description
Profondeur Débute à 0 et représente le niveau d'imbrication de ce nœud. Cela est similaire au numéro d'ordre # de la pile au moment où le nœud a été traité.
Nœud XML/XSL Représente le nœud du document source ou feuille de style traité. Un nœud particulier est la racine du document, notée comme document #. Chaque nœud a une flèche en face de lui représentant quelle action a été exécutée dessus (entrée ou sortie).
Attributs Attributs du nœud (liste de paires id ="valeur").
Ressource Fichier ressource où le nœud est situé. Le chemin complet du fichier ressource est donné ici comme aide.
[Important]Remarques
  • Cliquer sur un enregistrement surligne l'emplacement de ce nœud dans la ressource.

  • Seul le processeur Saxon affiche les attributs des éléments.

  • Le processeur Xalan affiche les règles "intégrées".

Vue des modèles

<xsl:template> est l'élément de base pour la transformation de feuilles de style. Cette vue affiche toutes les instructions <xsl:template> utilisées par la transformation. En voyant le nombre de hits pour chaque modèle vous pouvez avoir une idée de la couverture de la feuille de style par règles de modèle concernant la source en entrée.

Figure 7.9. La vue des modèles

La vue des modèles

Tableau 7.7. Détails des modèles

Colonne Description
Correspond Correspond à l'attribut du <xsl:template>.
Hits Nombre de hits pour le <xsl:template>. Affiche combien de fois le processeur XSLT a utilisé ce modèle particulier.
Priorité Priorité de modèle comme établi par le processeur XSLT.
Mode Attribut de mode du <xsl:template>.
Nom Nom de l'attribut du <xsl:template>.
Ressource Fichier ressource où le modèle est situé. Le chemin complet du fichier ressource est disponible comme aide.
[Important]Remarques
  • Cliquer sur un enregistrement surligne cette définition de modèle dans la ressource.

  • Saxon n'affiche que les modèles appliqués ayant au moins un hit par le processeur. Xalan affiche tous les modèles définis, avec ou sans hits.

  • Les valeurs du tableau des modèles peuvent être triées en cliquant sur l'en-tête de colonne correspondant (croissant, décroissant, aucun tri).

  • Xalan affiche les règles "intégrées".

Vue d'ensemble de nœuds

Cette vue est toujours utilisée en relation avec les vues Vue des variables et Vue XPath et affiche une valeur d'un ensemble de nœuds. Une fois que vous cliquez sur une variable ayant comme valeur un ensemble de nœuds ou un fragment d'arbre ou une expression XPath évaluée pour un ensemble de nœuds dans les vues ci-dessus, la vue ensemble de nœuds est actualisée avec les valeurs respectives.

Figure 7.10. La vue ensemble de nœuds

La vue ensemble de nœuds

Tableau 7.8. Détails de l'ensemble de nœuds

Colonne Description
Nom Nom du nœud source (XML).
Attributs/Valeur Contenu(Valeur ) des attributs ou du texte du nœud XML. Si des attributs existent, ils sont affichés sous la forme attributNom ="attributeValeur", sinon le contenu textuel du nœud est affiché.
[Important]Remarques
  • Dans le cas de valeurs longues pour le contenu de la colonne Valeur/Attributs, l'interface affiche trois points de suspension (...) à la fin. Une valeur plus détaillée est disponible comme aide.

  • Cliquer sur un enregistrement surligne l'emplacement de ce nœud dans la vue du source ou de la feuille de style.

Vue des variables

Durant la transformation les variables et les paramètres jouent un rôle important.

<oXygen/> utilise les icônes suivants pour différencier les variables/paramètres :

  • Variable globale.

  • Variable locale.

  • Paramètre global.

  • Paramètre local.

Les types de valeurs d'une variable sont marqués par des icônes expliqués ci-dessous :

Valeurs possibles

  • Booléen.

  • Chaîne.

  • Numérique.

  • Ensemble de nœuds.

  • Fragment d'arbre.

  • Date. (XSLT 2.0 seulement)

  • Objet.

  • Tous.

Figure 7.11. La vue des variables

La vue des variables

Tableau 7.9. Détails des variables

Colonne Description
Nom Nom de la variable/du paramètre.
Valeur Valeur actuelle de la variable/du paramètre.
[Important]Remarques
  • Cliquer sur un enregistrement surligne la ligne de définition de la variable.

  • Les valeurs de variables peuvent différer suivant le moteur de transformation utilisé ou la version des feuilles de style réglé.

  • Si la valeur de la variable est un ensemble de nœuds ou un fragment d'arbre, cliquer dessus affiche la Vue de l'ensemble de nœuds avec l'ensemble des valeurs correspondantes.

  • Des valeurs variables de tableau peuvent être triées en cliquant sur l'en-tête correspondant (croissant, décroissant, aucun tri).

Determining what template generated particular output

In order to quickly spot the templates with problems it is important to know what XSL template in the XSL stylesheet and what element in the source XML document generated a specified area in the output. Some of the debugging capabilities, for example "Step in" can be used for this purpose. Using "Step in" you can see how output is generated and link it with the style element being executed in the current source context. However, this can become difficult on complex stylesheets that generates a large output.

Sortie vers mapping de source est une fonction puissante qui rend ce mapping persistant, c.-à-d. que vous pouvez cliquer sur le texte depuis la Vue du document de sortie et l'éditeur va sélectionner le contexte du source et l'élément XSL qui ont généré le texte.

Figure 7.12. Sortie vers mapping de source

Sortie vers mapping de source
  1. If you are in the Editor perspective switch to the Debugger perspective with one of the actions:

    • Perspective->Debugger or the toolbar button Debugger

    • Document->XML Document->Debug scenario or the toolbar button Debug scenario

  2. Select the source XML document in the XML source selector of the Control toolbar

  3. Select the XSL document in the XSL stylesheet selector of the Control toolbar

  4. Select the XSLT engine in the XSLT engine selector of the Control toolbar

  5. Set XSLT parameters from the button available on the Control toolbar

  6. Apply the stylesheet using the button Run to end available on the Control toolbar:

  7. Inspect the mapping by clicking a section of the output from the Text view tab or from the XHTML view tab of the Output document view to have the stylesheet element and the source context highlighted.

    Figure 7.13. Mapping de sortie XHTML

    Mapping de sortie XHTML