FlexDoc/XML - Overview

FlexDoc/XML v1.14 released! See new README, Change Log.

This software is ready for downloads now!

  1. What is FlexDoc/XML?
  2. Key Features
  3. Technical Requirements
  4. Editions
  5. Functional Entities
  6. Full Licenses

1. What is FlexDoc/XML?

FlexDoc/XML is a software system for development and execution of high-performance documentation/report generators from any data stored in XML files.

FlexDoc/XML is an application of FlexDoc.XYZ in the field of XML.

Template-driven architecture

The actual documentation/report generators are programmed in the form of special templates using a graphic Template Designer that represents the templates visually in a form resembling the output they generate. Further, the templates are interpreted by a template processor, which takes on input the XML files and produces by them the result documentation.

An alternative to XSLT

As a whole, FlexDoc/XML system is similar to XSLT. The templates play the role of XSLT scripts and the template interpreter is an equivalent of the XSLT processor. However, XSLT provides no visual designer and XSLT scripts are hard to visualize. Besides that, FlexDoc/XML is a lot more focused on the generation of very complex finished documentation in various formats (rather than simply transforming one XML into another) and has many features for that absent in XSLT. FlexDoc/XML works with raw XML files. It uses only Apache Xerces for the initial parsing and processes further everything by itself. No XSLT processor is used somewhere in background.

Ready documentation generators

FlexDoc/XML includes ready-to-use large template applications (or template sets) that implement some very advanced professional documentation generators in the field of XML:

Diagramming Plugins

FlexDoc/XML itself is mostly about data-mining in XML files and generating some human-readable texts (from the found results). However, for certain things it is especially useful to include some graphical representation of them (in the form of some diagrams along with hyperlinks from the depicted features to the corresponding documentation details). That's the job of diagramming plugins that are also included in FlexDoc/XML software. There is currently one such a plugin:

Other Integrations

Finally, you can easily integrate FlexDoc/XML with Apache Ant and Maven so as to use it in your automatic build process.


Overall, «FlexDoc/XML» is more like an umbrella-name for many different things, which are hard to cover by a single license suitable for everyone. Instead, the software is logically broken into separate functional entities, which are covered by different licenses (either free or sold separately).

2. Key Features

This section is published on a separate page: FlexDoc/XML | Features. Here is its table of contents:

  1. Template-driven architecture
  2. Processing of XML data sources
  3. Formatting
  4. Insertion of images
  5. Hypertext
  6. Output formats
  7. Generator GUI
  8. Ready template applications
  9. Diagramming Plugins
  10. Other Integrations

3. Technical Requirements

FlexDoc/XML is a pure Java application. It will work anywhere, where Java SE version 11 (or later) can be installed.
Specifically, FlexDoc/XML software (available for downloads) includes:
  • Windows batch files
  • Linux and macOS shell script files
which allow you running FlexDoc/XML on those operating systems immediately.
DiagramKit is implemented with the use of JavaFX – the newest Java graphics/GUI platform. So, if you want to use DiagramKit, all JavaFX dependencies must be resolved. That can be achieved either
Before Java 11, JavaFX was a part of the standard Java SE. So, no problem existed with those JavaFX dependencies, and FlexDoc/XML+DiagramKit could be run immediately with any new Java version.

But since Java 11, Oracle has moved JavaFX into a separate project found at openjfx.io. Now those, who need JavaFX, should download JavaFX SDK from there separately, install it and specify all JavaFX dependencies in their Java application according to that installation. That, of course, may be quite complicated for ordinary users, and breaks down the whole idea of using some generic JRE pre-installed on user's computer (independently on FlexDoc/XML).

However, as a compensation for all that perturbation (and actually as its goal), since Java 11, anyone could build their own custom JRE (called «runtime image»), which would include in itself any 3rd party modules necessary to run a given application on a particular computer platform. That's what we did (see below).

To parse XML files, DTDs and XML Schemas, FlexDoc/XML uses Apache Xerces2 Java Parser version 2.12.0, whose binaries are included in the FlexDoc/XML archives. In case of any questions concerning that library, please refer to the Apache Xerces home page: http://xerces.apache.org.

Where to get Java / JavaFX?

You can freely download Java from:

4. Editions

Currently, the entire FlexDoc/XML software comes in the form of a single edition (called simply «FlexDoc/XML»), which you can download as a single archive. It includes everything (all features available in this product line): You just need to install the necessary licenses to use those features you need (if they are not free).

5. Functional Entities

FlexDoc/XML is very complex software that took many years to develop. So, a single license covering all features cannot be cheap (let alone free). Moreover, far not everyone even needs this everything!

So, we break the whole FlexDoc/XML into a number of logical products (or functional entities) according to the major functionality implemented. Some of those products are free, others require separate licensing.

Below is the list of such products along with the details of how they are licensed.

Template Designer

Provides a high-quality GUI to design templates. This is the only way to create/modify templates. In effect, the Template Designer both visualizes the template language and gives you access to most of FlexDoc.XYZ features.

Template Designer is covered by the “FlexDoc/XML SDK” license, depending on which it may work in one of two modes:

The difference shown in this table:

Feature / Functionality Demo Mode Full Mode
License type(s) Demo License (activated by default) Trial or Full License
Possibility to create/modify templates No. You can investigate any GUI functionality but not save any created/modified templates.   Template Designer will work without limitations. You can create/modify any templates.

Template Processor (Generator)

Represents the Runtime Environment (RE) to execute template applications. This includes: That functionality (called simply “generator”) is provided by FlexDoc/XML Java library.

The generator is covered by either Free License or “FlexDoc/XML SDK” license, depending on which it may work in one of three modes:

The differences between those modes are shown in the following table:

Feature / Functionality Default Mode Extended Mode Trial Mode
License type(s) Free License
(activated by default)
Full License for FlexDoc/XML SDK Trial License for FlexDoc/XML SDK
Execution of any custom templates.

If your custom templates are derived from a template set provided by Filigris Works, their execution will depend also on your license for that template application (see Licensing of Templates).

only those created or modified the last time under a Full License for FlexDoc/XML SDK distorted output
Execution of templates provides by Filigris Works.

This depends also on your license for that particular template application (see Licensing of Templates).

distorted output
Any number of input XML files
Support of XML Catalogs for input XML files
Generator GUI
Generation of HTML, RTF, TXT (plain text) output
Custom CSS in HTML output.

See also: Custom CSS Rules / CSS File | Which license required?

only templates created or modified the last time under a Full License for FlexDoc/XML SDK
Any number of output files of any size
Possible usage of generated documentation.

This depends also on your licenses for other features used during the generation, e.g. the template set, integrations (see Multiple Licenses).

any usage unlimited for evaluation only

Template Applications

FlexDoc/XML currently provides three ready-to-use template applications useful for real tasks. All template applications are included in FlexDoc/XML archive. However, some of them are separate commercial products (which requires special licensing):

App Description License
XSDDoc Implements a very powerful XML Schema Documentation Generator able to produce both multi-framed Javadoc-like HTML and printable RTF documentation. For more details, please see: FlexDoc/XML | XSDDoc.

Note: This is a commercial template application, which requires separate licensing. See also:
demo, trial, full
WSDLDoc A similar template application that implements even more powerful documentation generator for WSDL, XML schemas (XSD) and all interconnections between them. demo, trial, full
XMLDoc Allows you to compile any number of generic XML files into a web-ready HTML or printable RTF documentation with the optional inclusion of a namespace binding report that shows which namespace prefixes are bound to which namespace URIs and where.

Although, we place this template set into “Samples” category, we think it might be quite useful anyway. For more details, please see: FlexDoc/XML | Sample | XMLDoc

Diagramming Plugins

All these plugins are hardcoded in Java (included in flexdoc-xml.jar) and specifically supported in XSDDoc/WSDLDoc templates. However, each of them is considered a separate product (which requires separate licensing):

Plugin Description License
DiagramKit Implements FlexDoc/XML native diagramming engine (independent on any third-party software)!

It creates beautiful XSD diagrams that can be generated simultaneously along with (and inserted into) the documentation generated by either XSDDoc/WSDLDoc (with the support of all possible hyperlinks). Basically, if you need diagrams – just use DiagramKit! (Other plugins are legacy stuff).

For further details, please see:
demo, trial, full

Other Integrations

System Integration Implementation License
Apache Ant Allows you to run FlexDoc/XML generator from your Ant build. For more details, please see: FlexDoc/XML | Integrations | Apache Ant settings in your Ant build file free
Apache Maven Allows you to run FlexDoc/XML generator from your Maven build. For more details, please see: FlexDoc/XML | Integrations | Apache Maven Maven plugin (Java open source); settings in your Maven project file free

6. Full Licenses

License Description Note
FlexDoc/XML SDK You need this license if you want to heavily customize the documentation generated by any ready template applications (e.g. change some colors, fonts, layouts, look & feel, add new functionality etc.) or create your own ones. In particular, this license covers: Template applications and diagramming plugins are not covered by this license
FlexDoc/XML XSDDoc Unlocks all functionality implemented in XSDDoc templates. In particular, you will be able to: Although these licenses cover the automatic insertion of XSD diagrams in the generated documentation (i.e. programming of that in templates), the generation of diagrams themselves is not covered by them. For that you need a license for one of the diagramming plugins (see below).
FlexDoc/XML WSDLDoc Unlocks all functionality implemented in WSDLDoc templates. In particular, you will be able to:
FlexDoc/XML DiagramKit Unlocks all functionality implemented in DiagramKit. Allows you to generate XSD diagrams and automatically insert them into documentation generated by XSDDoc/WSDLDoc (with the support of all possible diagram hyperlinks).

See Also: