The Wayback Machine - https://web.archive.org/web/20121001055514/http://www.oxygenxml.com:80/xml_developer/xslt_editor.html
  • Like it

XSLT Editor

The XSLT Editor in oXygen is one of the XSLT developers' favorite choice, offering a powerful content assistant for the XSL and FO documents and the possibility of selecting from different types of XSLT transformers, including FOP.

XSLT Editor Overview

With oXygen XSLT Editor you can easily create, edit, test and validate XSLT documents. The content assistant will provide the elements, attributes and attribute values specific for XSLT and additionally the elements from the target document. Transformations can be configured to run the XSLT you are creating.

XSLT Editor

Supported XSLT Standards

<oXygen/> supports all W3C XSLT versions: 1.0, 2.0 and 3.0.

XSLT Outline View

The Outline view for XSLT presents the stylesheet components (templates, functions, variables, parameters, attribute-sets, character-maps) from the currently edited file and from the included and imported stylesheets. The components defined in the other than currently edited stylesheet are grayed-out.

The following image presents a complex stylesheet with a complex graph of imports and includes. The file names are presented on the first level. The first column present the name and match attributes, while the second column presents the mode attribute.

Grouping components in the XSLT Outline View

Components can be sorted by name and grouped by type, location and mode.

Finding an XSLT component in a large stylesheet can be a real challenge. oXygen XSLT Editor lets you filter the content of the XSLT outline view, so you can focus on the relevant stylesheet components. Typing a text in the filter box will result in showing only the components with one of the match, name or mode matching the entered text.

Filtering XSLT Components

Easy Identification of XSL Component References

All the occurrences of an XSL component are highlighted in the text when you place the caret near the component name.

The occurrences bar from the right side of the editor displays a summary of the component references in the XSLT stylesheet.

The component declaration is rendered with a darker color to make it easier to spot.

Component occurences highlighted into the XSL source

XSLT Content Assistant Shows the Output Document Elements

While creating an XSLT document you are creating as output, in general, HTML, FO or another XML format. The XSLT standard allows specification of the elements from the target output directly, that is you can specify something like <table> ... </table> instead of <xsl:element name="table"> ... </xsl:element>. The content assistant provided by <oXygen/> XSLT Editor shows the elements from the target output wherever an element can be inserted. The target output document type can be easily configured from options. You can choose from XHTML, FO or you can specify the path of a custom XML Schema or DTD.

Content completion on XSLT showing target elements

These settings define what elements are suggested by the content assistant in addition to the XSLT ones.

Content Completion XSLT

XPath Aware Content Assistant

Editing XPath expressions for the "match", "select", or "test" attributes is not always straight forward. <oXygen/> XSLT Editor makes this task easier by showing in Content Assistant proposal list the XPath functions and axes, all documented with sections from the W3C specifications.

If you have configured a scenario for the edited stylesheet, then the proposal list contains also the names of the elements from the input document that are currently accepted in the XPath expression.

The next image shows a list of functions. The stylesheet had the version 2.0, so the list is populated with the XPath 2.0 functions.

Content Assistant on XSLT showing XPath functions

The next image shows how the input elements presented in the list are filtered depending on the context node.

The template selects the "personnel", the xsl:for-each selects "person" elements. The "person" element is thus the context for the evaluation of the test. The context is further changed by the partial XPath expression edited so far, the result being the "family" added to the completion list.

Content Assistant on XSLT showing input elements

Content completion offers the list of components from included/imported XSLT stylesheets

The content completion offers XSLT variables, templates, functions and modes not only from the current stylesheet but also from the included or imported ones.

XSLT Unit Test

<oXygen/> provides XSLT Unit Test support based on XSpec. You can easily create a test for an XSLT stylesheet using the New -> XSLT Unit Test contextual action in the Project View. This action automatically generates an XSpec stub for the templates and functions from the stylesheet that you want to test. Editing XSpec is assisted with content completion and validation, and a default transformation scenario allows to run the tests, generating as output the test report.

XSLT 3.0

XSLT 3.0 support is automatically activated for each XSLT stylesheet having the version attribute set to 3.0. <oXygen/> provides content completion for XSLT 3.0 stylesheets, support for transformations and XSLT validation, updated Outline view and search and refactoring actions that handle new additions in the XSLT 3.0 standard.

Saxon 9 XSLT and XQuery processor is used for execution and transformations.

Allow Different Element Colors Depending on XML Prefix

This allows for instance to have the XSLT elements in a different color than the result elements, or the XML schema elements different from the elements used inside annotations.

You can add your own prefixes to the list of prefix to color mappings. In the next image, the "fo" prefix has been mapped to green.

XML prefix mapped to color

XSLT Input Document View

This view presents the tree structure of the XML document set as input for the current stylesheet in the associated transformation scenario.

You can create templates or other XSLT snippets by dragging the nodes from the tree into the stylesheet. The generated XPath expressions are context aware.

For example dragging the node "/personnel/person/name" into a xsl:template matching "person" will insert for instance an "xsl:for-each" with the select attribute equal to "name", while dragging the same node into a template matching "personnel", will set a "person/name" as value of the select attribute.

Drag and Drop with XML Input nodes

Support for Multiple Transformations

Multiple transformation scenarios may be created. Before transforming the current edited XSLT document in <oXygen/> one must define a transformation scenario that applies to the document. A scenario is a set of values for various parameters defining a transformation. It is not tied to any particular document.

List of scenarios

The Configure Scenario dialog is used to associate a scenario from the list of all scenarios with the edited document by selecting an entry from the list. Use the XSLT tab to specify an input XML file to be used for the transformation. You can also add XSLT parameters or optionally specify the initial template for XSLT 2.0 stylesheets..

Transformation configuration dialog

After starting a transformation the button will change from "Start" to "Stop", so you can stop a time consuming transformation at any time.

Flexible Input Configuration for Transformation Scenarios

You can specify both the transformation XML source and the stylesheet locations, it is not required anymore for the edited document to be one of the transformation XML source or stylesheet. This allows editing a module and invoking a transformation on the master files.

The editor variable ${currentFile} can be used to indicate the current file.

Inline Documentation for the XSLT Elements

Inline Documentation

The content completion was improved to show you the schema annotation documentation for the element and attribute proposals. <oXygen/> bundles an annotated schema for XSLT stylesheets, this way making the documentation instantly available. Together with the outliner and the model view, this new feature transforms <oXygen/> XML / XSLT Editor in one of the best XSLT editors available.

Support for Multiple XSLT Java Transformers

You can choose between two of the most popular Java XSLT engines: Xalan and Saxon EE which are bundled with <oXygen/>. You can also configure any JAXP compliant XSLT processor and use it to perform transformations.

In this way you can easily work in development with the engine you choose for your production system. Other XSLT engines can be configured as external tools.

Support for XSLTProc and MSXML XSLT transformers

<oXygen/> XSLT Editor can perform XSLT transformations using MSXML 3.0/4.0/.NET and XSLTProc transformers. Usually on the Windows platform any Microsoft Office application installs the MSXML 3.0 or 4.0 package. The <oXygen/> installation kit includes adapters for these transformers.

XSLTProc is part of libxslt (the XSLT C library for GNOME) and is packaged in the Windows, Mac OS X and Linux standalone <oXygen/> distributions. In case you want to use it from the Eclipse plugin, you have to copy the executable files into the plugin directory.

Additional XSLT Stylesheets

The transformation scenarios allow you to specify additional XSLT stylesheets that will be executed in cascade on the output of the main stylesheet of the scenario. It is possible to define complex scenarios that involve more than a single stylesheet, thus a single action can execute multiple XSLT transformations and eventually a FOP transformation. The list of additional XSLT stylesheets can be edited in the dialog opened by the button "Additional XSLT stylesheets".

Apply transformations

Easy Configuration of XSLT Extensions

XSLT processor extensions are added easily with an intuitive user interface.

If you need processing functions not available in the XSLT language it is easy to configure the jars containing their implementation: edit the list of XSLT extensions available in Edit Scenario Dialog.

XSLT Extensions

The Default Scenario

If you press the Apply Transformation Scenario toolbar button and if there is no scenario associated with the edited document and the document contains a "xml-stylesheet" processing instruction referring to a XSLT stylesheet (commonly used for display in Internet browsers), then <oXygen/> will prompt asking to create a default scenario containing in the XSLT URL field the URL from the href attribute of the processing instruction. This scenario has the "Use xml-stylesheet declaration" checkbox set. It uses Saxon as transformation engine and does not perform FO processing. The result is stored in a file with the same URL as the edited document except the extension which is changed to html.

Import/Export Transformation Scenarios

You can share the transformation scenarios with other <oXygen/> users. The option to Export Transformation Scenarios is used to save all the scenarios in a separate file. The file will also store the associations between document URLs and scenarios.

Preview Transformation Results

Preview transformation results

<oXygen/> offers three integrated views to show the XSLT transformation results. One is text based and will render XML or text results, other is XHTML based and will render XHTML results, the last one being able to display SVG results. You can also choose to see the transformation results in the application associated with the output file type.

Check out the XSLT Editor for yourself - Download a free 30-day trial of <oXygen/>.

  • oXygen XML Developer
  • oXygen XML Developer

    Starting from $349

Upcoming Events
DITA Europe 2012
November 12-13, 2012
Frankfurt, Germany
oXygen-Users Meetup Frankfurt 2012
November 11, 2012
Frankfurt, Germany
The LavaCon Conference
October 7–9, 2012
Portland, Oregon, USA
TCWorld 2012
October 23-25, 2012
Wiesbaden, Germany
Oracle OpenWorld 2012
September 30-October 4, 2012
San Francisco, CA
" oXygen is the premier text editor for XML geeks, and an indispensable tool for O'Reilly's Production group. My team uses oXygen for everything from simple XML editing to Schema validation and XSLT transformations. The digital production staff especially loves oXygen's built-in EPUB support, which eliminates a great deal of the grunt work that is usually entailed in editing EPUB files. The more we use oXygen, the more realize what a powerful tool it can be in digital and XML-based workflows."
Adam Witwer
Director of Content and Publishing Operations
O'Reilly Media
HTTPS · web.archive.org
← Home