What's New in Oxygen XML Developer 21.0

Related Versions: 21.0

February 22, 2019

The release of version 21 of Oxygen XML Developer adds numerous new features, updates, and improvements to the already robust, industry-leading XML development 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 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 various other new features, updates to add-ons, new API entry points, component updates, performance improvements, and much more.

There are changes in:


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 it's 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.

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.

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 in Text or Author mode.

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.

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

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 Tony Graham 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.