If you need to validate the edited document with other validation engine than the built-in
one you have the possibility to configure external validators in the Oxygen user preferences. After such a
custom validator is properly
configured it can be applied on the current document with just one click on the
Custom Validation Engines toolbar. The document is validated against
the schema declared in the document.
Some validators are configured by default but they are third party processors which do not
support the output message format of Oxygen for linked messages:
- LIBXML - Included in Oxygen (Windows edition only). It is associated to XML Editor. It is able to validate the edited
document against XML Schema, Relax NG schema full syntax, internal DTD (included in the XML
document) or a custom schema type. XML catalogs support (the --catalogs
parameter) and XInclude processing (--xinclude) are enabled by default
in the preconfigured LIBXML validator. The --postvalid parameter is
also set by default which allows LIBXML to validate correctly the main document even if the
XInclude fragments contain IDREFS to ID's located in other fragments.
For validation
against an external DTD specified by URI in the XML document, the parameter
--dtdvalid ${ds} must be added manually to the DTD validation
command line. ${ds} represents the detected DTD declaration in the XML document.
CAUTION:
Known problem: file paths containing spaces are not handled correctly in
the LIBXML processor. For example the built-in XML catalog files of the predefined
document types (DocBook, TEI, DITA, etc) are not handled by LIBXML if Oxygen is installed in the default
location on Windows (C:\Program Files) because the built-in XML catalog files are stored
in the frameworks subfolder of the installation folder which in this
case contains at least one space character in the file path.
Attention:
On Mac OS X if the full path to the LIBXML executable file is not specified in the
Executable path text field, some errors may occur on validation
against a W3C XML Schema like:
Unimplemented block at ... xmlschema.c
These errors can be avoided by specifying the full path to the LIBXML executable
file.
- Saxon SA - Included in Oxygen. It is associated to XML
Editor and XSD Editor. It is able to validate XML Schema schemas and XML documents against
XML Schema schemas. The validation is done according to the W3C XML Schema 1.0 specification
or according to the W3C XML Schema 1.1 specification. This can be configured in Preferences.
- MSXML 4.0 - Included in Oxygen (Windows edition only). It is
associated to XML Editor, XSD Editor and XSL Editor. It is able to validate the edited
document against XML Schema, internal DTD (included in the XML document), external DTD or a
custom schema type.
- MSXML.NET - Included in Oxygen (Windows edition only). It is
associated to XML Editor, XSD Editor and XSL Editor. It is able to validate the edited
document against XML Schema, internal DTD (included in the XML document), external DTD or a
custom schema type.
- XSV - Not included in Oxygen. Windows and Linux distributions of XSV can be downloaded from http://www.cogsci.ed.ac.uk/~ht/xsv-status.html. The executable path is already configured in Oxygen for the
[Oxygen-install-folder]/xsv installation folder. If it is installed
in a different folder the predefined executable path must be corrected in Preferences. It is
associated to XML Editor and XSD Editor. It is able to validate the edited document against
XML Schema or a custom schema type.
- SQC (Schema Quality Checker from IBM) - Not included in Oxygen. It can be downloaded from here (it comes as a .zip file, at the time of this writing SQC2.2.1.zip is
about 3 megabytes). The executable path and working directory are already configured for the
SQC installation directory [Oxygen-install-folder]/sqc. If it is
installed in a different folder the predefined executable path and working directory must be
corrected in the Preferences
page. It is associated to XSD Editor.
A custom validator cannot be applied on files loaded through an Oxygen custom protocol plugin
developed independently and added to Oxygen after installation.