Anyone is free to implement the OpenDoPE Conventions. If you have a full or partial implementation, let us know and we will list it here.

The list of implementations is organised as follows:

authoring tools


o non-interactive

o interactive


running within Word

Authoring tools

There are three different Word Add-Ins which you can use for authoring.

The first (and oldest) is available from or as an MSI. This Add-In is aimed at a developer audience, as it assumes familiarity with XML and XPath. For usage instructions, see the walkthrough.

An authoring tool aimed at less technical users is available from This tool uses the drag/drop approach Microsoft has introduced in Word 2013. The source code is available on GitHub.

An authoring tool for the interactive use case, for for non-technical authors. This authoring tool completely hides the scary XML (but assumes a fixed XML format). See further GitHub

From Authoring to Processing

Once you have authored a template document, you'll want to try it out.

Processing: Non-Interactive

The primary function of a non-interactive processing tool is to pre-process repeats and conditionals. That is, to repeat a repeated item the number of times dictated by the data, and to exclude any conditional items (paragraphs, tables) which the data indicates is unecessary.

Note: If your template does not contain repeats or conditionals, then your template can be handled by the built-in data-binding in Microsoft Word 2007 without the need for any pre-processing at all. All you need to do as a developer, is inject the Custom XML Part into the docx; Word will take care of the rest.

Non-interactive processing requires that all the necessary data is present in an XML file (additional software may be used to create that XML file, from SQL, SOAP etc).


docx4j implements the Conventions.

There are various bits of sample code at GitHub, entitled 'ContentControl*'.

Apache-licensed source code for a webapp which uses that can be found at github . A web app is a better approach than a command line app which exits after each run, since you don't incur Context startup time for each document.

.NET / C#

A C# / .NET implementation is under development.

Interactive Processing (Web based)

In addition to pre-processing repeats and conditionals (as described above), an interactive processing tool gathers necessary data from a user.

Note: If your template does not contain repeats or conditionals, then your template is nothing more than a simple "fill-in-the-blanks" document. A user can do this directly in Microsoft Word 2007, without macros.

A demo of web-based processing may be found at

The fabdocx implementation is a Java web application, built on top of docx4j. The template documents are stored in a CMIS-based repository (Alfresco).

To enquire about licensing fabdocx, please contact

Interactive Processing (from within Word)

The advanced authoring tool described above can optionally inject a Word macro into your template document.

If you choose to do this, then when a user opens the docx document in Word, the macro will run and ask them the relevant embedded questions.

To obtain the macro VBA source code, please contact