Oxygen XML Editor
The Premier All-In-One XML Editing Suite
Oxygen XML Author
Single-Source XML Authoring and Multi-Channel Publishing
Oxygen XML Developer
The Required Tools for Designing XML Schemas and Transformation Pipelines
Oxygen JSON Editor
The Perfect Tool to Simplify Your JSON Editing Experience
Oxygen Publishing Engine
The Complete DITA Publishing Solution for WebHelp and PDF Output
Oxygen PDF Chemistry
Chemistry Converts HTML and XML to PDF Using CSS
Oxygen XML WebHelp
Publish DITA and DocBook Content to WebHelp Output
Oxygen Styles Basket
Customize the Look and Feel of Your PDF and WebHelp Output
Oxygen XML Web Author
Engage Your Whole Organization In Content Creation
Oxygen Content Fusion
The Web-based Collaboration Platform to Craft Tomorrow's Content
Oxygen Feedback
Modern Commenting Platform
Cloud
Enterprise
Oxygen AI Positron
Enhance Your Productivity with the Power of AI
Oxygen Scripting
Automate and Run Oxygen Utilities from the Command-Line Interface
Oxygen SDK
Specifically designed for application developers and integrators
Shop
Pricing and licensing for businesses, Academic and individuals
Save time when developing complicated XQuery expressions by using the Oxygen XQuery debugger. Oxygen can debug and profile expressions run over MarkLogic or Berkeley XML databases, or using the Saxon EE processors.
Oxygen provides a special layout when entering in debugging mode to show the XML source (optional) and the XQuery documents side by side and to also show the result and special XQuery debugging views and toolbars. The perspective allows you to use the common XML and XQuery editor features.
The XQuery debugger support is based on the Saxon EE XQuery processor that is bundled with Oxygen.
Oxygen provides all the usual debugging capabilities: step into, step over, step out, run, run to cursor, run to end, pause, stop. The current XML and XQuery nodes reached by the debugging process are shown (see the right part in the image that follows) with the following details: an arrow icon to show the action performed on it (entering/leaving), the name, the resource, and the line. By clicking the arrow, the text sections corresponding to the XML and XQuery nodes are highlighted in the editor.
Allows you to easily find out what element from the XQuery document generated a section of the output. To do this, you just have to click on the Output text view. The editor will highlight the line in the XQuery document that generated the output.
The following image shows the right part of the debugging perspective, with the XQuery source in the left and the output in the right. The "<name>J. D. Salinger</name>" fragment of the output was generated by the highlighted name element of the input XQuery file.
Breakpoints can be set on the XQuery document used in the transformation to pause the debugger. The breakpoints appear in the left bar of the XQuery editor, as a red dot, and they can be created easily by using the shortcut key or by clicking the breakpoints area.
A condition can be attached to a breakpoint set in the Debugger perspective so that processing stops only if the condition is true.
The current stack containing XQuery instructions can be inspected at any time during the debugging process. The Stack view shows the sequence of XQuery instructions currently executed by the debugger.
Entering and leaving node events are logged and made available in a view to show the history of the processor execution. You can click the entries in the list to see the corresponding instructions highlighted in the editor associated with the XQuery file where the instruction is defined.
It is possible to save the element trace obtained from a debugging session as XML. This permits the comparison of multiple debug runs.
The current context node value or the values of variables that are evaluated to tree fragment or list of nodes are presented in tree-like views, thus giving you access to the whole variable content. This is useful especially in debugging XQuery transformations that keep intermediary results in variables.
The user can easily locate the nodes from the tree by simply clicking on them and the editor will select the corresponding XQuery instruction.
The debugger lists all XQuery variables and parameters that are visible in the current XQuery context along with their scope and actual value. The view is updated as the XQuery processor changes the context during the transformation.
The output is dynamically presented as it is generated by the XQuery transformation process. The user can directly examine the output as XML source.
Oxygen has powerful transformation support based on reusable scenarios. The same scenarios can be used for debugging. The XQuery Debugger will be initialized with the information from the XQuery scenario (source document location, transformation parameters) when the Debug scenario action is executed. This allows you to easily manage and trigger debugging sessions.
You can profile your XQuery queries to identify the performance issues by using two comprehensive data views of the activated templates: an Invocation Tree view and a Hotspots view. The profiling information can be saved to XML or HTML formats.
Profiling is available only for the Saxon XQuery processor that is bundled with Oxygen.
Invocation Tree View
Using the Invocation Tree view, also named a call tree, you can examine how XQuery instructions are processed in a top down manner. The profiling result shows the duration time for each of the style instruction, including the time needed for its children. Then, when an instruction is expanded, you can see how the instruction time is composed from child instruction times.
Hotspots View
Using the profiler Hotspots view you can immediately detect the time the processor spent in each instruction. The hotspot displays the inherent time of the instruction (the total time of processing that instruction minus the time for processing its children instructions). When a hotspot is expanded, you can see all the paths that instruction was called from (a reverse invocation tree), the number of invocations, the instruction time on that path, and the percentage from the instruction total execution that path contributes.