Oxygen XML Editor

Last updated
Oxygen XML Editor
Developer(s) SyncRO Soft Ltd. Romania
Stable release
24.1 [1]   OOjs UI icon edit-ltr-progressive.svg / 10 March 2022
Written in Java
Operating system Cross-platform
Type XML editor, HTML editor
License Proprietary
Website www.oxygenxml.com   OOjs UI icon edit-ltr-progressive.svg

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. [2] It also has a version that can run as an Eclipse plugin. [2]

Contents

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. [3]

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. [4]

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. [5]

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. [6]

Commercial licenses are available in a Professional stream and an Enterprise stream for both the author-only edition and the full Editor edition. [7] 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. [8]

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. [9]

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. [10]

See also

Related Research Articles

A document type definition (DTD) is a specification file that contains set of markup declarations that define a document type for an SGML-family markup language. The DTD specification file can be used to validate documents.

<span class="mw-page-title-main">Standard Generalized Markup Language</span> Markup language

The Standard Generalized Markup Language is a standard for defining generalized markup languages for documents. ISO 8879 Annex A.1 states that generalized markup is "based on two postulates":

<span class="mw-page-title-main">XML</span> Markup language by the W3C for encoding of data

Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The World Wide Web Consortium's XML 1.0 Specification of 1998 and several other related specifications—all of them free open standards—define XML.

In computing, the term Extensible Stylesheet Language (XSL) is used to refer to a family of languages used to transform and render XML documents.

XSLT is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text or XSL Formatting Objects, which may subsequently be converted to other formats, such as PDF, PostScript and PNG. Support for JSON and plain-text transformation was added in later updates to the XSLT 1.0 specification.

DocBook is a semantic markup language for technical documentation. It was originally intended for writing technical documents related to computer hardware and software, but it can be used for any other sort of documentation.

Mathematical Markup Language (MathML) is a mathematical markup language, an application of XML for describing mathematical notations and capturing both its structure and content, and is one of a number of mathematical markup languages. Its aim is to natively integrate mathematical formulae into World Wide Web pages and other documents. It is part of HTML5 and standardised by ISO/IEC since 2015.

XSD, a recommendation of the World Wide Web Consortium (W3C), specifies how to formally describe the elements in an Extensible Markup Language (XML) document. It can be used by programmers to verify each piece of item content in a document, to assure it adheres to the description of the element it is placed in.

In computing, RELAX NG is a schema language for XML—a RELAX NG schema specifies a pattern for the structure and content of an XML document. A RELAX NG schema is itself an XML document but RELAX NG also offers a popular compact, non-XML syntax. Compared to other XML schema languages RELAX NG is considered relatively simple.

Schematron is a rule-based validation language for making assertions about the presence or absence of patterns in XML trees. It is a structural schema language expressed in XML using a small number of elements and XPath languages. In many implementations, the Schematron XML is processed into XSLT code for deployment anywhere that XSLT can be used.

XSL-FO is a markup language for XML document formatting that is most often used to generate PDF files. XSL-FO is part of XSL, a set of W3C technologies designed for the transformation and formatting of XML data. The other parts of XSL are XSLT and XPath. Version 1.1 of XSL-FO was published in 2006.

An XML editor is a markup language editor with added functionality to facilitate the editing of XML. This can be done using a plain text editor, with all the code visible, but XML editors have added facilities like tag completion and menus and buttons for tasks that are common in XML editing, based on data supplied with document type definition (DTD) or the XML tree.

An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. These constraints are generally expressed using some combination of grammatical rules governing the order of elements, Boolean predicates that the content must satisfy, data types governing the content of elements and attributes, and more specialized rules such as uniqueness and referential integrity constraints.

The Darwin Information Typing Architecture (DITA) specification defines a set of document types for authoring and organizing topic-oriented information, as well as a set of mechanisms for combining, extending, and constraining document types. It is an open standard that is defined and maintained by the OASIS DITA Technical Committee.

<span class="mw-page-title-main">XMLSpy</span> XML and JSON editing integrated development environment

XMLSpy is a proprietary XML editor and integrated development environment (IDE) developed by Altova. XMLSpy allows developers to create XML-based and Web services applications using technologies such as XML, JSON, XBRL, XML Schema, XSLT, XPath, XQuery, WSDL and SOAP.

<span class="mw-page-title-main">XMetaL</span>

XMetaL, or XMetaL Author, is a software application people use to create and edit documents in XML and SGML. It has some features common to word processors, but is a native XML editor that can be configured to work with various standard and custom DTDs and XML Schemas. XMetaL was first released by SoftQuad Software in 1999 and is currently developed by JustSystems.

XQuery is a query and functional programming language that queries and transforms collections of structured and unstructured data, usually in the form of XML, text and with vendor-specific extensions for other data formats. The language is developed by the XML Query working group of the W3C. The work is closely coordinated with the development of XSLT by the XSL Working Group; the two groups share responsibility for XPath, which is a subset of XQuery.

Liquid XML Studio IDE is a Windows based XML editor and XML data binding toolkit. It includes graphical editors for authoring XML, XML Schema, WSDL, XSLT and HTML. It also includes user interface extension to Microsoft Visual Studio through the Visual Studio Industry Partner (VSIP) program.

Stylus Studio is an integrated development environment (IDE) for the Extensible Markup Language (XML). It consists of a variety of tools and visual designers to edit and transform XML documents and legacy data such as electronic data interchange (EDI), comma-separated values (CSV) and relational data.

<span class="mw-page-title-main">Journal Article Tag Suite</span>

The Journal Article Tag Suite (JATS) is an XML format used to describe scientific literature published online. It is a technical standard developed by the National Information Standards Organization (NISO) and approved by the American National Standards Institute with the code Z39.96-2012.

References

  1. https://www.oxygenxml.com/history.html.{{cite web}}: Missing or empty |title= (help)
  2. 1 2 Even, Bill; Sharkey, Kent; Kay, Michael (23 May 2007). Professional XML. Wrox Press. p. 55. ISBN   978-0-470-16738-0.
  3. , Build History of Editor, Developer, and Author Releases (20/12/2015).
  4. , Feature Matrix: Editor vs. Author (retrieved 20/12/2015).
  5. , Licensing FAQ section (retrieved 20/12/2015).
  6. , Academic license (retrieved 20/12/2015).
  7. , Professional and Enterprise licenses (retrieved 20/12/2015).
  8. , Academic/Enterprise vs. Professional/Personal features (retrieved 20/12/2015).
  9. , Personal license (retrieved 20/12/2015).
  10. , support and maintenance FAQ section (retrieved 20/12/2015).