1.2. Files containing the add-ons

Configuration file

XXE configuration files are XML files:

  • with a file name ending with ".xxe",

  • validated by XML schema with http://www.xmlmind.com/xmleditor/schema/configuration as its target namespace,

  • with a root element named configuration,

  • this root element having a name attribute,

  • containing a detect element.

Several configurations may have the same name. For example, a user may have defined its own configuration named "DocBook" including bundled configuration also named "DocBook" but adding element templates and keyboard shortcuts (see include, elementTemplate, binding). In such case, only one configuration named "DocBook" is kept by XXE: the configuration with highest priority.

Configurations loaded from the addon/ subdirectory of user preferences directory have priority over configurations loaded from the value of environment variable XXE_ADDON_PATH which in turn have priority over configurations loaded from the addon/ subdirectory of XXE installation directory.

Configurations having the same priority are sorted using their file basenames. Example: file:///opt/xxe/foo/docbook.xxe is tested before file:///opt/xxe/bar/sdocbook.xxe when trying to detect the class of a document because docbook.xxe lexicographically precedes sdocbook.xxe.

XML catalogs

XML catalogs are XML files:

  • with a file name ending with "atalog.xml",

  • which conform to the OASIS catalog DTD.

Example:

<?xml version="1.0" ?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.0//EN"
  "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"
         prefer="public">

  <public publicId="-//W3C//DTD SVG 1.1//EN"
          uri="common/dtd/svg11/svg11.dtd"/>

</catalog>

Note that specifying the above <!DOCTYPE> will not cause the XML catalog parser to download XML Catalog DTD, catalog.dtd, from the Web.

XXE uses XML Catalogs not only to resolve the locations of the DTD and other external entities, but also to resolve URLs found in the following places:

  • Schema locations in xsi:schemaLocation and in xsi:noNamespaceSchemaLocation.

  • Schema locations in xs:include, xs:redefine, xs:import.

  • Document locations passed to the document() XPath function.

  • All XXE configuration elements referencing an URL. Example: <include location="..."/>.

  • CSS style sheet locations in @import.

  • CSS style sheet locations in <?xml-stylesheet href="..."?>.

  • XSLT style sheets in the transform child element of a process command.

  • Resources in the copyProcessResource child element of a process command.

  • XSLT style sheets included or imported by other XSLT style sheets (that is, the XML Catalogs used by XXE are passed to Saxon, the XSLT engine bundled with XXE).

  • RELAX NG schema locations in <?xxe-relaxng-schema location="..."?>.

Translations of XXE messages (menu labels, button labels, error messages, etc) to languages other than English

Translations of XXE messages are contained in Java™ jars:

  • with a file name ending with ".jar",

  • having a basename which is the two-letter ISO code of the language followed by "_translation" (e.g. de_translation.jar, it_translation.jar, cs_translation.jar, es_translation.jar, etc). Not mandatory, just recommended.

Spell-checker dictionaries

Spell-checker dictionaries are contained in Java™ jars:

  • with a file name ending with ".dar",

  • having a basename which is the ISO code of a language (e.g. fr, fr-CH, en, en-US, etc).

    This naming pattern is highly recommended for dictionaries found in the local file system. This naming pattern is mandatory for dictionaries centralized on an HTTP or an FTP server.

XSL-FO processor plug-ins

XSL-FO processor plug-ins are contained in Java™ jars:

  • with a file name ending with "_foprocessor.jar",

  • implementing service com.xmlmind.xmleditapp.process.FOProcessor.

The exact structure of a plug-in jar (manifest, service providers, etc) is described in Chapter 11, Writing a plug-in in XMLmind XML Editor - Developer's Guide.

Image toolkit plug-ins

Image toolkit plug-ins are contained in Java™ jars:

  • with a file name ending with "_imagetoolkit.jar",

  • implementing service com.xmlmind.xmledit.imagetoolkit.ImageToolkit.

Non-XML format plug-ins

Non-XML format plug-ins are contained in Java™ jars:

  • with a file name ending with "_format.jar",

  • implementing service com.xmlmind.xmleditapp.structformat.StructuredFormat.

Virtual drive plug-ins

Virtual drive plug-ins are contained in Java™ jars:

  • with a file name ending with "_vdrive.jar",

  • implementing service com.xmlmind.xmleditapp.vdrive.DriveFactory.

Customizations of XXE GUI

Such customizations are contained in XML files called customize.xxe_gui and conforming to the "http://www.xmlmind.com/xmleditor/schema/gui" W3C XML Schema.

Such GUI specification files are described in XMLmind XML Editor - Customizing the User Interface.

If during its start-up, XXE finds several customize.xxe_gui files, it will merge their contents with the base GUI specification (by default, xxe-gui:app/Professional.xxe_gui, which is a resource contained in xxe_app.jar).

This feature is available only in XMLmind XML Editor Professional Edition.