# Oxygen XML Editor

The Oxygen XML Editor (styled <oXygen/>) is a multi-platform XML editor, XSLT/XQuery debugger and profiler with Unicode support. It is a Java application so it can run in Windows, Mac OS X, and Linux. It also has a version that can run as an Eclipse plugin.

## Release cycle

Oxygen XML has three types of releases, excluding betas and development versions. Major releases (most recently release 26 as of 2024) occur on average once per year. Minor releases (most recently 26.1 as of March 2024) are made at least once every few months after a major release, occasionally twice a year. Incremental build releases are provided on an as-needed basis, usually in response to bugs or security issues. Build numbering is based on the build's date and time (to the hour). As of the end of 2015, the current full version and build number are "Oxygen XML Editor 17.1, build 2015121117" with a full release history available online.

## XML editing features

Oxygen XML offers several features for editing XML documents. Documents can be checked in proper XML form. They can also be validated against a schema. For validation purposes, the documents can be validated against DTD, W3C XML Schema, RELAX NG, Schematron, NRL and NVDL schemas. The editor can also validate the XML as it is entered. A validation scenario can be generated for additional schema types, which allows Oxygen to call out arbitrary programs to perform validation.
Also, the program has support for XML catalogs. An XML catalog is an XML file of a specific format that maps a schema definition string to an actual file name on the disk or web. Using catalogs allows the user to specify a web address for a schema but allows Oxygen to find a file form of the address if the catalog identifies one.
Oxygen XML comes with schemas and DTDs for popular or major XML and XSL formats including DocBook (versions 4.0 and 5.0), TEI format, XSLT (versions 1.0, 2.0 and 3.0), DITA, XHTML and HTML 5. Extending to new XML dialects or specializations is achieved by adding the relevant framework or implementation to the software or loading the document type or schema, thus enabling an adaptable environment that is itself configured entirely by XML, which draws parallels with Emacs and its ability to edit itself while implementing the Lisp dialect it runs in.
The program is aware of XInclude, and all validation and transformation services can follow the XInclude statements to their included files. Oxygen XML offers three views designed for editing XML documents. These views are text, grid, and author.

### Text view

The text view is the default view for editing an XML document. As the name suggests, this view shows the XML text as text.
For documents that are associated with an XML schema, Oxygen XML offers tag completion. Oxygen XML can use a number of XML schema languages, including DTD, W3C XML Schema, RELAX NG (both compact and full). Both W3C XML Schema and RELAX NG schemas can include embedded Schematron rules. It also can use the NRL and NVDL routing languages, which allow multiple schemas of different types to be applied to different files.
In addition to tag completion, annotations in the schema will be displayed as tooltips for the elements that those annotations apply.
For schema formats that do not have a standard mechanism to bind the schema to the XML file, Oxygen XML provides a processing instruction that instructs the program on which schemas to use. For documents that do not have a schema, Oxygen can analyze the document's structure and generate a schema.

### Grid view

The grid view shows the XML document in a spreadsheet-like fashion. The left-most column shows the elements at the root level, including comments and processing instructions. The next column shows attributes of root elements and every unique first child of the root XML element. If the root element has six children named "section," then the grid view will show only one section element and a notation that there are six of them. This iteration continues for the next column.
This view is not often useful for HTML or other document-like formats, but it can be helpful in specific XML formats that resemble spreadsheets. Except for spaces, this view shows the entire structure of the XML file. All of the textual information in the file will be presented in this view.

### Author view

New to Oxygen XML v9.x was an author view providing a WYSIWYM view of the XML document. This smaller version of the editor called oXygenXML Author is provided as a cheaper option in the commercial options where the full feature set may not be required. Author is centered on general XML document editing.
This view is based on providing a CSS file for the document that specifies the data type for each element in the document's schema. Oxygen XML comes with document CSS files for DITA, DocBook, and TEI formats.
XML tags and attributes in this view can be completely disabled or shown in various combinations.
Editing in this view is an intermediate step between true WYSIWYG and editing in the regular text view in terms of complexity for the author. The XML elements are made more human-readable and intuitive, but the nesting and semantics of the XML document are still clear. The cursor can be placed between any elements, and when the cursor's position is ambiguous, a tooltip window will appear showing a local view of the XML tree and the cursor's position in it. A bar along the top of the view offers the list of elements from the document root to the element under the cursor.
XML elements are never implicitly inserted into the document. However, a common action in editing document-like XML files is to create a new element of the same name following the current one. The author view will perform this operation if the user presses the enter key twice (pressing it once brings up a dialog of possible elements to add if tag competition is available).
Inserting elements can be done through oXygen's XML refactoring commands to insert an element at the current cursor location. Even if XML tags are non-visible, an indication for an empty element is always displayed using that element's name.
Attributes on XML elements cannot be directly edited. However, Oxygen XML has an attribute panel that can be used to both see and set the value of attributes on the current element when content completion information is available.

## Editing of specialized XML formats

Though Oxygen XML can edit any XML document, providing content completion for documents with a schema binding, it can recognize certain XML documents innately.
Oxygen XML provides schema editing features for W3C XML Schema and RELAX NG's XML form. It offers visual editing support for both schema-less syntax highlighting and content completion.
Oxygen XML offers support for XSLT documents, both version 1.0 (with EXSLT extensions) and 2.0. XSLT elements are recognized and drawn in a different color from non-XSLT XML elements. It also provides special validation services for XSLT documents. For example, it can validate that an attribute containing an XPath string is a valid XPath. oXygen XML automatically assumes that documents with the .xsl and .xslt extensions are XSLT files, and it treats them accordingly.
It also offers support for editing XSL-FO documents, though it does not provide its visual editing features.

## Editing of non-XML files

Though Oxygen XML is primarily an XML editor, it does come with the ability to edit many non-XML textual formats. It has syntax completion for DTD, RELAX NG's compact format, XQuery, CSS and regular HTML. It also provides basic syntax highlighting support for several common web scripting languages to a degree, such as Python, Perl, and JavaScript, among others.

## Document transformation

XSLT-based document transformation is a typical operation on XML files, and Oxygen XML supports these operations. It allows the user to define a transformation scenario that specifies the application of a particular XSLT file to the current XML document. Each transformation scenario is aware of all of its designated XSLT file parameters and provides for editing them graphically.
Additionally, the results of the transformation scenario can be piped through an XSL-FO processor, whether that be the built-in FOP processor or an external one. The final output filename, path, and extension can be specified for a transform scenario as command-line parameters.
Transform scenarios can be local to a particular Oxygen XML-project workspace or global to all projects. Oxygen XML comes with several standard global-transform scenarios for common tasks, e.g., from DocBook documents into PDF through XSL-FO and FOP or HTML. It also comes with a recent version of the DocBook XSL XSLT transformation suite. Oxygen XML comes with DITA Open Toolkit, which allows publishing (exporting) entire DITA-document structures to different output formats, including PDF, WebHelp, and EPUB.

## XSLT debugger

Oxygen XML provides comprehensive debugging facilities for XSLTs. It offers features comparable to source-code debuggers like gdb, including breakpoints, the ability to look at the current context and "memory," and single-stepping through the XSLT. It can debug both XSLT version 1.0 and 2.0.

## Licensing

A choice of either "Named User" or server-based floating licensing. The former favors small businesses or individual developers, who may install it anywhere as long as it is just the specific named user utilizing it. The latter favors larger teams that can benefit by sharing licenses across a global network spanning multiple time zones. An additional group license is available for the academic version only.
Academic licenses are available to academic staff, students, and educational institutions. Still, the license limits the use of the software to academic or research purposes only and cannot be used for commercial purposes.
Commercial licenses are available in a Professional stream and an Enterprise stream for both the author-only edition and the full Editor edition. Either the user or floating licenses are available for each stream, with value gaining for the latter with a larger number of users. The chief differences between the Enterprise edition and the Professional edition are the high-end databases are directly supported. Though the Professional edition still provides direct support for Berkeley DB, MySQL, PostgreSQL, JDBC connections and generating an XML schema from a relational database structure.
Additionally, there is a Personal edition for independent developers or freelancers paying for it themselves rather than their employer. The Personal edition is identical to the Professional edition with regards to features; the only differences are the much lower price, though higher than a single academic license, and providing the full Editor edition rather than just the Author component.
An optional support and maintenance subscription is available, including full upgrades including major releases during the maintenance period. With 17 major releases across 13 years of operation, the annual maintenance offers (averaging around 20% of the full license cost) are cost-effective. The maintenance term can be extended effectively indefinitely by renewing before the expiration date.