XProc Support

XProc is an XML pipeline language that can be used to script transformations. XProc is especially useful for complex transformation or validation processes when the order and interaction between the processes do not have an obvious or simple flow.

Oxygen includes support for editing XProc scripts, validating them, running the scripts for transformations, configuring extensions for the built-in Calabash engine, and integrating external XProc engines.

XProc Editor

In Oxygen, an XProc script can edited as an XML document in either Text or Author mode. Text mode is considered the primary editing mode for XProc scripts, but Author mode is helpful for viewing scripts. The XProc editor in Oxygen includes content completion assistance, syntax highlighting, and all the other normal editing features.

Content Completion

The Oxygen Content Completion Assistant helps you to edit XProc scripts by offering proposals that are valid at the cursor position. It also include documentation about each proposed element or attribute.

XProc Content Completion

Syntax Highlighting

The XProc editor assists you with writing XPath expressions by offering dedicated coloring schemes for syntax highlighting. You can customize the foreground color, background color, and the font style for each component type. Oxygen also uses different colors depending on the prefix for elements. For example, the xsl:*element constructs are rendered with a lighter shade of blue as in the screenshot above.

XProc Validation

By default, XProc scripts are validated against a RELAX NG schema, or if the script has an associated transformation scenario, then the XProc engine selected in the scenario is used as the validating engine (if the XProc engine supports validation). The default engine for XProc scenarios in Oxygen is a version of the Calabash engine and it comes bundled with the application.

XProc Transformations

Oxygen includes a built-in XProc transformation scenario for running XProc scripts. It is configurable and you have the ability to invoke individual or batch transformations.

An XProc transformation results in output sent to one or more ports. Each port can receive a sequence of documents. In Oxygen, the results are displayed in a dedicated XProc results view with each port name and the sequence of documents sent to that output port.

XProc Results View

Pluggable XProc Engines

Oxygen includes a connector that uses a pluggable mechanism to add XProc engines. A version of the Calabash engine is bundled with the product, but you also have the ability to integrate other external XProc engines to be used for transformations and validation.

Calabash Extensions

If you are using the default Calabash engine, it is possible to configure extensions for it. The supported extensions include: 'allow-text-results', 'general-values', 'html-serializer', 'json-flavor', 'transparent-json', 'use-xslt-10', and 'xpointer-on-text'.