Determining What XSLT / XQuery Expression Generated Particular Output

In order to quickly spot the XSLT templates or XQuery expressions with problems it is important to know what XSLT template in the XSLT stylesheet or XQuery expression in the XQuery document 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 XSLT/XQuery element being executed in the current source context. However, this can become difficult on complex XSLT stylesheets or XQuery documents that generate a large output.

Output to source mapping is a powerful feature that makes this output to source mapping persistent. You can click on the text from the Text output view or XHTML output view and the editor will select the XML source context and the XSLT template/XQuery element that generated the text. Also inspecting the whole stack of XSLT templates/XQuery elements that determined the state of the XSLT/XQuery processor at the moment of generating the specified output area speeds up the debugging process.

  1. Switch to the Oxygen XML Developer plugin XSLT Debugger perspective or Oxygen XML Developer plugin XQuery Debugger perspective with one of the actions (here explained for XSLT):
    • Go to menu Window > Open Perspective > Other ... > Oxygen XSLT Debugger
    • Go to menu . The toolbar button Debug scenario . This action initializes the Debugger perspective with the parameters of the transformation scenario. Any modification applied to the scenario parameters (the transformer engine, the XSLT parameters, the transformer extensions, etc) will be saved back in the scenario when exiting from the Debugger perspective.
  2. Select the source XML document in the XML source selector of the Control toolbar. In case of XQuery debugging without an implicit source choose the NONE value.
  3. Select the XSLT / XQuery document in the XSLT / XQuery selector of the Control toolbar.
  4. Select the XSLT / XQuery engine in the XSLT / XQuery engine selector of the Control toolbar.
  5. Set XSLT / XQuery parameters from the button available on the Control toolbar.
  6. Apply the XSLT stylesheet or XQuery transformation using the button Run to end available on the Control toolbar.
  7. Inspect the mapping by clicking a section of the output from the Output view of the Oxygen XML Developer plugin XSLT Debugger or Oxygen XML Developer plugin XQuery Debugger perspectives.

    Text Output to Source Mapping

    This action will highlight the XSLT / XQuery element and the XML source context. This XSLT template/XQuery element that is highlighted in the XSLT/XQuery editor represents only the top of the stack of XSLT templates/XQuery elements that determined the state of the XSLT/XQuery processor at the moment of generating the clicked output section. In case of complex transformations inspecting the whole stack of XSLT templates/XQuery elements speeds up the debugging process. This stack is available in the Output Mapping Stack view.