What's New in Oxygen XML Editor 21.0

Related Versions: 21.0

February 22, 2019

The release of version 21 of Oxygen XML Editor adds numerous new features, updates, and improvements to the already robust, industry-leading XML editing application. The primary focus for this major release was to evaluate user requests for improvements and additions, implement as many of them as possible, while preserving the reliability, stability, and performance requirements that the XML community has come to expect from the Oxygen suite of products.

This major release includes numerous productivity improvements for DITA authors, the CSS-based PDF Publishing support and the Oxygen PDF Chemistry engine were enhanced with many new possibilities for improving PDF output, a major effort was put into making the JSON editing support as robust as the other built-in document types, various features were added for XSLT and XQuery developers, as well as updates to add-ons, new API entry points, component updates, performance improvements, and much more.

Collaboration for your XML documentation review process is now readily available since the Oxygen Content Fusion connector add-on is already installed in Oxygen XML Editor.

There are changes in:

DITA Authoring

Improvements to DITA Reusable Components View

The DITA Reusable Components view received more improvements. The default display mode for the Keys tab now has a tiles style of layout and additional filtering and sorting options were added to help you search for keys. Also, a new action was added in the Settings menu of the Components tab to force a re-indexing of the reusables.
Improvements to DITA Reusable Components View

Quick Fix to Correct Capitalization in Paths

A quick fix was added that can be used to correct capitalization problems in file paths. For example, instances where you have an image or an xref with an href attribute pointing to a resource and the path to the resource is correct, but not properly capitalized (C:\temp\myfolder instead of C:\temp\myFolder).

Validate and Check for Completeness Gathers Keys from Root Map

The Validate and Check for Completeness operation now gathers keys from the map specified in the Root Map combo box. This means that you can now validate submaps (for example, to check for broken links), but the keys will be gathered from the root map.

Preview Image Before Inserting It

When inserting images in DITA topics, the Insert Image dialog box now includes a preview box so that you can see the selected image before clicking Insert.
Preview Image Before Inserting It

Key Reference to Image Presents Preview Thumbnail

If you have a key defined for an image in a DITA map, when you reference it in a DITA topic, you now have the ability to see a preview thumbnail of the image in the in-place attributes editor or the Attributes view.

Support for Profiling Conditional Attribute Groups

You now have the ability to define profiling attribute groups to organize the attribute values into hierarchical conditions. This is intended to support situations where an attribute applies to multiple specialized subcategories. The same support for single profiling attributes is available for groups. For example, you can configure the colors and styles for group values, defined groups are listed in the content completion window, and the groups are presented in all the same locations in the application.

DITA Maps Automatically Indexed

When opening a DITA map in the DITA Maps Manager, its index will automatically be refreshed by default. There is a new option in the Open/Find Resource preferences page where you can disable this feature.

DITA Maps Metrics Report Improved

The DITA Map Metrics Report transformation scenario was improved to also list all @outputclass attribute values gathered from the DITA project.

Better Support for Editing DITA-OT Plugin Configuration Files

When editing a DITA-OT plugin.xml configuration file, placing the cursor inside the value of an extension attribute and invoking the content completion will present a list of possible extension points with links to the DITA-OT documentation.

Open Next Document that Contains Review Items

When navigating items in the Review view, if you reach the last/first review item in the document, clicking the navigation button again will open a dialog box asking if you want to open the next/previous document (from the current DITA map hierarchy) that contains review items. You can also configure this behavior with a new option in the DITA preferences page.

DITA CSS-based PDF Publishing

Add an Edit Link in the PDF Output for CSS-Based PDF Transformations

It is now possible to add an "Edit" link next to the topic title in the PDF output. When a user clicks the link, the topic is opened in Oxygen XML Web Author where they can offer suggestions or make changes that can be saved to a file server.
Add an Edit Link in the PDF Output for CSS-Based PDF Transformations

Control How Tracked Changes and Comments are Presented

It is possible to control how the tracked changes and comments are presented. They can be shown as PDF annotations or as footnotes. PDF Annotations are specially handled by PDF viewers, such as Adobe Acrobat Reader. The annotations contain information about the author, comment, part of the affected content, the date, and replies.

Navigation Title Used for Bookmark Labels

You can use the navtitle element in a topic or a topic reference in a map to adjust the labels for the PDF bookmarks. PDF Bookmarks are used to generate a hierarchical structure similar to a table of contents in a specialized view of your PDF Reader.

Generate List of Tables and Figures from a Bookmap

Support was added for generating a list of tables or figures when using a DITA bookmap. They can be defined inside a 'booklist' element in the frontmatter or backmatter of a bookmap. For more information about this and other ways to control content using a bookmap, see Controlling the Publication Content.

Alter Styles Through Custom Parameters

You can activate parts of your CSS by using custom transformation parameters. These parameters are recognized by the publishing pipeline and are forwarded as synthetic attributes on the root element of the merged map. For more information, see Styling Through Custom Parameters.

Fixed Various DITA-OT Transformation Parameters

The args.gen.task.lbl, args.figurelink.style, and args.tablelink.style DITA-OT parameters now work properly when generating PDF output based on CSS and HTML5.

Hazard Statement Icons Updated

When the DITA hazardstatement element is used, the icon that appears in Author mode and the output was updated according to the ISO-3864 standard.

Parameter to Control Numbering

A new parameter (args.css.param.numbering) can be used to control the way numbering is implemented. When set to shallow, only the first-level topics (the chapters) are numbered. When set to deep, all the chapters and subsections are numbered. For more information, see How to Switch Between Shallow and Deep Numbering.

DITA to Responsive WebHelp

Topic Path Breadcrumb is Displayed in Search Results Page

In the Search Results page, you can now see a breadcrumb of the path of all of the topics that contain the search results. It makes it easier to visualize where the topic exists in the hierarchy and you can click any of the topics in the breadcrumb to open that particular page.

WebHelp Compatible with DITA-OT 3.x

Oxygen WebHelp has been tested and is compatible with the latest DITA Open Toolkit version 3.x.

XML Refactoring Operation to Migrate HTML Page Layout Files to Version 21

For custom publishing templates that were created in version 20.1 and that include custom HTML page layout files, a conversion procedure is required for the template to be compatible with version 21. A new XML Refactoring operation was added to make this conversion very easy. For details, see Converting Old Templates with HTML Page Layout Files to Version 21.


Outline View Redesigned for JSON Documents

The Outline view was redesigned for JSON documents. For example, it is now available for more types of JSON constructs (such as arrays), it's available even if the JSON document is not well formed, and its functionality is now more similar to the Outline view for XML documents. Also, an error icon is now displayed for validation problems and you can hover over the icon to see a tooltip with details about the problem.

Content Completion Assistance for JSON, Based on JSON Schema

Content completion support was added for JSON documents, proposing code constructs that are valid at the current location, based upon the associated JSON schema. This makes it easier and faster to edit JSON documents. Also, it now presents documentation from the associated schema to help you understand how the property or value is used.

Content Completion for JSON Schema

Depending on the version of the JSON schema, the Content Completion Assistant offers proposals based upon the JSON Meta-schema.

Define Code Templates for JSON

You now have the ability to define your own code templates that will appear in the content completion list of proposals. For example, you can define a custom JSON code construct that doesn't already appear in the content completion by default. For details see Content Completion Assistant in JSON.
Define Code Templates for JSON

Associate JSON Schema Directly in JSON Documents

When editing JSON documents, you now have the ability to associate a JSON schema directly in the document. The benefits are that the JSON schemas will be used for automatic validation, content completion, and for a new Go to definition action that navigates to the definition of the current property.

Execute XPath Expressions over Multiple JSON Files

Support was added to execute XPath expressions over multiple JSON files from the XPath/XQuery Builder view and the XPath toolbar. XPath 1.0, 2.0, and 3.0 expressions are supported.

New Actions for Getting the XPath at the Cursor Location

The Copy XPath contextual menu action now also works for JSON properties and it copies the XPath expression for the current property to the system clipboard. Also, an XPath update on cursor move option was added to the Settings menu on the XPath toolbar and in the XPath Builder view.

Transform JSON Documents

New XSLT document templates and samples are now available for transforming JSON document into various outputs, such as HTML or XML. They appear in the Framework templates->XSLT folder in the new document wizard. You can also transform JSON documents using XQuery.

JSON Validator Supports Multiple Compositors

The JSON validator now supports multiple compositors (allOf, anyOf, oneOf) for the JSON Schema.

Copy JSON Pointer to Clipboard

A new contextual menu action is available in Text mode called Copy JSON Pointer and it can be used to create a JSON Pointer at the current cursor location and copies the expression that denotes the JSON pointer to the clipboard.

Open Associated Schema Action

The Open Associated Schema toolbar action now also works with JSON documents. It detects and opens the JSON Schema associated with the current JSON document either through a validation scenario or directly in the document.


XSLT 3.0 Improvements

The support for XSLT 3.0 was improved. For example, more proposals were added to the content completion list, more namespaces were added (for XPath functions, maps, and arrays), and functions were added specifically for JSON (json-to-xml, xml-to-json). Support was also added for setting static parameters.

Easily Change Initial Mode and Initial Template Options

If the Saxon-specific initial mode (-im) or initial template (-it) options have values specified in the Advanced Saxon settings page (accessed from and XSLT transformation scenario), they now take precedence over the same options set in a configuration file. This makes it easier to change the initial mode or template.

Content Completion for Attribute and Element Functions

The content completion in XSLT and XPath now provides proposals for attribute() and element() functions. The content completion window also provides documentation for these functions.

Compile XSL Stylesheet for Saxon Tool Improvements

The Compile XSL Stylesheet for Saxon tool can now be set to use a Saxon configuration file.
Compile XSL Stylesheet for Saxon Tool Improvements


Validate XQuery Modules

XQuery modules (libraries of functions that can be imported and used from an XQuery document) are now validated automatically as you type, or manually by invoking the Validate action.

XQuery 3.0 Improvements

The support for XQuery 3.0 was improved. For example, more proposals were added to the content completion list for functions and arguments, including XPath 3.1 functions.


Automatically Recover Documents

An option is now available to automatically save the currently modified documents to backup files. This makes it possible to recover content after system crashes or other problems. By default, the option is enabled and it saves the content of each modified file to the backup file every 5 minutes, but this can be configured in the Save preferences page. In the event of a crash, when you restart the application or open a document that was being edited before the crash, a dialog box is displayed with options for how to handle the auto-recovered information.

New Built-in Transformation Scenario Type for CSS-Based PDF Output

You now have the option to create transformation scenarios based on a new scenario type called XML to PDF Transformation with CSS. It uses the Oxygen PDF Chemistry processing engine to obtain PDF output by applying CSS styling to an XML document.
New Built-in Transformation Scenario Type for CSS-Based PDF Output

Open Resource in Console (Terminal)

A new contextual menu action was added in the Project view that can be used to open a command console at the location of the selected physical resource. If the selected resource is a file, the console will open at the parent directory.

Filter Review View to Show Items in Current Document Only

A new filter was added in the Review view called Show reviews in read-only content. You can deselect this filter to only show review items in the current document and exclude review items from content referenced in a conref or conkeyref.

Automatically Generate IDs in Attributes View

When using the Attributes view or the in-place attributes editor for any of the built-in frameworks, if the selected attribute is named id, a Generate Unique ID Value button is available. Clicking this button will automatically generate a unique ID value for the selected element.
Automatically Generate IDs in Attributes View

Learn Words Directly from Results Panel

When misspelled words are reported in the Results panel after using the Check Spelling in Files action, you now have the ability to choose to Learn words using a contextual menu action directly in the Results panel.

Replace Content Without Finding the Next Instance

When using the Find/Replace dialog box, the Replace button now only replaces the current match without advancing to the next instance. There is now an additional button (Replace/Find) that can be used for that purpose.

Show Unreferenced Resources in System Explorer

When using the Find Unreferenced Resources action on a DITA map, any resources found and listed in the Results panel can be previewed by selecting Show in Explorer from the contextual menu.

Bookmark Shortcuts Automatically Open Closed Documents

Bookmark navigation shortcuts (CTRL+1 through CTRL+9) now work even if the document where the bookmark was inserted has been closed. In this case, using the shortcut will automatically re-open the document.

Automatically Detect Fonts for Certain Character Sets in the Fonts Preferences Page

When choosing a font for various UI components in the Fonts preferences page, the font chooser dialog box now includes an option to Show only the fonts that can render the sample text. If you select this option and paste content in the Sample area, Oxygen will detect fonts that can render the particular character set and filter the fonts that can be selected accordingly. This is helpful is you're trying to determine the font to use for a character set with special characters (for example, Asian languages).
Automatically Detect Fonts for Certain Character Sets in the Fonts Preferences           Page

Huge File Editor Improved

The huge file editor now supports editing files that have Windows-1252/CP-1252 or ISO 8859-1 encoding.

MathML and SVG Graphics Improved for Retina/HiDPI

The quality of the rendering of MathML and SVG images was improved for Retina/HiDPI displays.

Exist 4.5 Officially Supported

Exist 4.5 was tested and is now officially supported.

XLiff 2.1 Supported

Added support to create, edit, and validate XLiff 2.1 documents.

Documentum xDB (XHive) Support Removed

Support for the Documentum xDB (XHive) database was entirely removed.


Insert XML Fragment

New API method for Text mode, TextDocumentController.insertXMLFragment(String, int), can be used to insert an XML fragment inside an element. If the element is empty, it attempts to expand the element (for example, </a> to <a></a>).

Customize Default Rendered Topicref Title

New API DITAMapNodeRendererCustomizer.customizeRenderedTopicrefTitle(AuthorNode, String) is useful if, for example, you want to add numbers to the topicrefs displayed in the DITA Maps Manager view, based on depth.

Create an Anchor at a Certain Offset

New API method WSTextBasedEditorPage.createAnchor(int) can be used to create an anchor at a certain offset in the content.

Get Offset of an Anchor

New API method WSTextBasedEditorPage.getOffsetForAnchor(Anchor) can be used to get the offset corresponding to an anchor that was previously created.

Serialize Persistent Object to an XML String

New API method GlobalOptionsStorage.serializePersistentObject(Object) can be used to serialize a persistent object to an XML string.

De-serialize Persistent Object

New API method GlobalOptionsStorage.deserializePersistentObject(String) can be used to de-serialize a persistent object that was previously serialized as XML.

Move Keyboard Focus to Current Editing Mode

New API WSEditorPage.requestFocus() can be used to move the keyboard focus to any of the editing modes.

Get Key Definition for a Target URL

New API method KeyDefinitionManager.getKeyDefinitionForTarget(URL, URL) can be used to get the key definition corresponding to a target URL (rather than the current map or topic).

Add-on Updates

Batch Converter Add-on Now Includes Excel to DITA

The Batch Converter add-on now includes an option to convert multiple MS Excel documents to DITA.

Oxygen Content Fusion Connector Add-on Pre-installed

The Oxygen Content Fusion Connector add-on now comes pre-installed with Oxygen.

Git Client Add-on Includes JGit 5.2.1

Updated the Git Client add-on to include JGit version 5.2.1.

Saxon Transformer Add-on Updates

Updated the 9.9 version of the Saxon transformer add-on to support Saxon version The 9.8 version of the add-on was also updated to use Saxon

XSpec Helper View Add-on Includes XSpec 1.1

Updated the XSpec Helper View add-on to include XSpec 1.1.

Component Updates

Apache Batik 1.10.x

Updated the Apache Batik SVG toolkit to version 1.10.x.

Apache FOP 2.3

Updated Apache FOP to version 2.3.

Calabash 1.1.24

Updated the Calabash engine to version 1.1.24.

Chemistry PDF Processor 21.0

Updated the bundled Chemistry PDF processor to version 21. For a full list of new features and improvements, see What's New in Oxygen PDF Chemistry 21.0.

DITA Open Toolkit 3.2.1

Updated the bundled DITA Open Toolkit publishing engine to version 3.2.1.

EPUBCheck 4.1.1

The EPUBCheck tool that is used to validate EPUB files was updated to version 4.1.1.

Eclipse 4.9 and 4.10

The Oxygen Eclipse plugin was updated to officially support the latest Eclipse versions 4.9 (2018-09) and 4.10 (2018-12).

focheck 0.7.1

The bundled focheck framework (https://github.com/AntennaHouse/focheck) developed by Antenna House, Inc and used in Oxygen to offer enhanced XSL-FO validation, was updated to version 0.7.1.

JSON Everit Library and Validation Engine 1.9.2

Updated the JSON Everit library and validation engine to version 1.9.2.

SVNKit 1.8.15

Updated the bundled SVN client to use SVNKit 1.8.15.

TEI Schemas 3.5 and TEI Stylesheets 7.47

Updated the bundled TEI schemas to version 3.5 and the TEI stylesheets to version 7.47.

XSpec 1.2

Updated the XSpec version to 1.2.