The SOA and Service Bus tools plugins for JDeveloper provide a new XSLT Editor for the 12c release. This blog post provides an overview of the new editor.
If you have used the 11g XSLT editor, the new editor will look very familiar to you. The overall look and feel of the display remains the same with some code reused from the 11g editor for specific dialogs, etc. However, the core of the editor was rewritten specifically to support more complex XSLT with larger schemas and still provide the user with a graphical display.
In order to achieve this, the editor provides two graphical views in Design View:
The view is selectable by selecting Map or XSLT on the upper right of the editor toolbar.
Map View is very similar to the functionality provided by the 11g XSLT editor. This view allows simple drag and drop and use of simple XSLT statements such as xsl:for-each, xsl:if, xsl:choose/when, etc. The user can also drag and drop from the source tree to the target tree to create mappings and add XPath statements in the center panel similar to the 11g editor.
XSLT View is new in 12c. It is essentially a graphically enhanced view
of the XSLT source code and is intended for users who know XSLT but want the
editor to provide schema information with the flexibility to do whatever they
need to do in XSLT.
This view shows the XSLT statements
as they appear in source view, but adds the ability to create and view all
XPath expressions graphically. It can
support more advanced XSLT constructs such as matched templates (template
rules), named templates and all XSLT 1.0 statements.
There are distinct advantages to
editing advanced XSLT in this view as opposed to editing the XSLT source
aware, in terms of the editor, means:
- If you are editing an XSLT file with
multiple matched templates (template rules), the editor can determine the
context node for each template and automatically create the correct relative
XPath expressions when the user drags and drops from the source into a specific
- Conversely, the editor can then
display the resulting line for mappings that require knowledge of the context
node for a template.
- The context node for any template can
be found in the source tree by selecting the template in the XSLT. This causes the context node to be
highlighted in the source tree.
- While editing any XPath expression,
the user has access to a mini-tree that provides the context node and its
children for reference while editing XPath.
the picture below we are making use of an identity template. The bubble highlighting in the source tree
shows the context nodes for the templates selected.
- XSLT View shows only the XSLT
statements and nodes in the current mapping. This is an advantage when working with large
schemas where many nodes on the target side are never mapped. While unmapped target nodes are not
explicitly shown, there are several ways to easily insert additional target
nodes from the target schema or generate nodes from the schema. This will be discussed in future blog posts.
- XSLT View supports free-form XSLT
editing with or without schemas. XSLT
- insertion of all XSLT 1.0
statements. These can be inserted in any
manner desired: as a child of the
selected node, as a parent of the selected node, as a sibling either above or
below the selected node. The user is prompted
for any attribute values for the XSLT element added.
- creation of elements and attributes
that are not part of the target schema.
- editing of named templates (these
may be contained in XSLT files that are intended for import into other XSLT
files, consequently they may not need source and target schemas defined).
- rearrangement of statements by simply dragging and dropping them in the tree.
In future posts I hope to go through the features of each of
these graphical views in detail.