XSLT debugger limitations
General
- XSLT Context view and XSL Transformation Output view may not appear automatically: These views may not appear automatically when you debug an XSL Transformation. The views can be opened manually by choosing Window > Show View > Other from the workbench menu bar. In the Show View dialog, expand the Debug control and select the view that you want to open.
- Conflict with Visual Basic Script Debugger: XSLT breakpoints cannot be put in files with a .vbs extension as there is a conflict with the Microsoft Visual Basic Script Debugger.
- Watch expressions may show incorrect results on Linux: To avoid this problem, keep watch expressions to a minimum and disable them when stepping. To see the latest value, re-enable watch expressions after stepping is complete. Alternatively, use inspect expressions instead of watch expressions if you only need to evaluate the expression once.
- Node highlighting: If node stepping is on, the XSL source file in the editor view and the XSL source loaded by the transformer must be byte-by-byte identical, or node highlighting will be off.
- Default product JRE must be used for debugging XSLT: When debugging XSL transforms, IBM JRE 1.4.2 must be used. This is the default JRE that ships with Rational Application Developer. Other JREs are not supported when debugging XSLT.
- Source location attribution must be set to true: This provides a SourceLocator so that the source location of nodes in the input (XML) document can be determined (source location is always enabled for an XSL document). Source location attribution is on by default. For more information, go to http://xml.apache.org/xalan-j/features.html#source_location.
- Alternate XSLT processors or XML parsers cannot be specified in your Java application: The debugger has a dependency on Xerces and Xalan. You cannot explicitly set the processor to be Xalan (by overriding the TransformerFactory system property) - doing this would cause debugging to be turned off.
- You cannot serialize/deserialize/clone Xalan components: Debugging state and references may not be properly resolved at de-serialization. Fields may not be properly initialized when cloning occurs. Additionally, there are existing Xalan bugs with serialize/de-serialization/cloning.
- Using custom trace listeners: Using a custom trace listener with the debugger can cause unexpected results.
- Breakpoints: Breakpoints are supported inside template rules only. For example, breakpoints on global variables are not supported.
- Generated file length: Generated files greater than 2147483647 bytes are not supported.
- Browser view links and images: Links and images in the browser view of the Transform Output view will only work if you specify an output file, and the path of that output file is such that the links and images can be found. An output file can be specified in the launch configuration.
- XML output in the browser: XML output will not display properly in the browser until there is a respective closing tag for all tags in the document. This is a browser limitation.
- Setting breakpoints in input XML documents: If you set a breakpoint in the input XML document to an XSL transform, the debugger will stop when that node is the current context node, but only if the breakpoint is set on the line containing the closing ">" of either the opening tag of the element, or of the closing tag of the element.
- Stepping over initialization of result tree fragment variables does not work: To workaround this, set a breakpoint on a line after the initialization and resume in order to skip past the initialization code.
Multi-language limitations
The following limitations only apply when you step into a stylesheet from a Java application:
- Drop to frame and Hot code replace: The drop to frame and hot code replace features should not be used while debugging XSLT called from Java.
- Incremental feature must be off: The incremental feature must be turned off. When on, this allows the DTM (the internal representation of the input) to be built incrementally instead of waiting for the entire input to be parsed. This feature is off by default. For more information, go to http://xml.apache.org/xalan-j/features.html#incremental.
- Limited support for user-supplied URIResolvers in generated source: When using a custom URI-resolver to resolve imports, includes, and document calls, the source of the document may not be viewable in the debugger. The transform will, however, continue.
- External entity references in generated source is not supported: If the source XML document contains an in-line DOCTYPE with an external entity declaration in a generated source (SAX or DOM) scenario, subsequent use of the external entity can cause incorrect results.
- Debugging transforms that use JAXP with DOMSource source objects: When debugging an XSL transform that uses JAXP with a source object that is a DOMSource, the SystemId must be set on the DOMSource.
- Java extension elements: Stepping into Java extension elements causes problems when returning to a stylesheet. The transform may hang, or not step to or run to the correct location.
General mixed language debug limitations may also apply when debugging Java that calls a stylesheet or stylesheets that call Java. These limitations can be found in the Java and mixed language debug documentation.