FlexDoc/XML - Overview
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.Licensing
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:
- Template-driven architecture
- Processing of XML data sources
- Formatting
- Insertion of images
- Hypertext
- Output formats
- Generator GUI
- Ready template applications
- Diagramming Plugins
- 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.- Windows batch files
- Linux and macOS shell script files
- By installing some JRE (i.e. Java Runtime Environment) with all necessary JavaFX modules included in it by default
- By installing JavaFX separately and specifying the path to its modules in the script/build files running FlexDoc/XML+DiagramKit
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).
Where to get Java / JavaFX?
You can freely download Java from:-
Our web-site: http://www.flexdoc.xyz/downloads/
We offer «FlexDoc JRE» – the custom {OpenJDK+OpenJFX} images prepared to run FlexDoc/XML+DiagramKit on Windows, macOS and Linux immediately. Use this Java to not bother with anything else!
For more details, please see: FlexDoc/XML | DiagramKit | Installation | Using FlexDoc JRE
-
Oracle Java Technology web-site:
https://www.oracle.com/java/technologies/
That's the primary Java implementation from Oracle. For commercial users, it requires special licensing. You can use this Java immediately as a JRE for running FlexDoc/XML – however, without DiagramKit. To be able to run DiagramKit on the standard Java, you will need to download JavaFX SDK, install it separately and specify the path to its modules in the script/build files running FlexDoc/XML.
For more details, please see: FlexDoc/XML | DiagramKit | Installation | Using standard Java + JavaFX SDK
-
OpenJDK web-site: https://jdk.java.net
This is also a complete Java (JDK) from Oracle. It is said to be functionally the same as the main Oracle release. However, unlike the latter, this Java implementation is free for any use (including commercial one). In order to run DiagramKit on it, you will need also to download JavaFX SDK, install it separately and specify the path to its modules in the script/build files running FlexDoc/XML.
For more details, please see: FlexDoc/XML | DiagramKit | Installation | Using standard Java + JavaFX SDK
4. Editions
In all text about FlexDoc/XML, we shall use {flexdoc-xml}
to denote your FlexDoc/XML installation directory, e.g.: C:\flexdoc-xml-1.14\
- Template Designer
- Template Processor
- Template Applications
- Diagramming Plugins
- Other Integrations
- Sample Templates
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:
- Demo
- Full
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:- Template Interpreter
- Output generators in HTML, RTF and TXT formats
- Generator GUI
- The support of XML Catalogs for input XML files
The generator is covered by either Free License or “FlexDoc/XML SDK” license, depending on which it may work in one of three modes:
- Default
- Extended
- Trial
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 | free |
Diagramming Plugins
All these plugins are hardcoded in Java (included inflexdoc-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: