1.2. Files containing the add-ons
Prev | 1. Dynamic discovery of add-ons | Next

### 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`.

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

  - 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).

  - The `href` attribute of `xi:include` elements (XInclude).

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.foprocessor.FOProcessor`.

  The exact structure of a plug-in jar (manifest, service providers, etc) is described in Chapter 10, 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`.

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.

Prev | Up | Next
1.1. The lookup phase during XXE startup | Home | 2. Centralizing add-ons on a HTTP server