- Thursday, 22nd October 2026
Docuneering's S1000D Print & Publish capability is developed using XSLT and XSL-FO stylesheets. Like any substantial publishing system, those stylesheets are not contained in a single XSL file. They are divided into a number of modules, each responsible for different aspects of the publishing process.
This modular approach makes the XSL source easier to develop and maintain, but it is not necessarily how you would want to deploy your publishing capability. A user wanting to publish an S1000D publication should not need to understand the relationships between individual stylesheets, their imports and includes, or any customer-specific XSL customisation.
For this reason, Docuneering uses the Saxon Stylesheet Export File (SEF) as its preferred method of deploying the XSL layer of its publishing capability.
XSL stylesheets are developed using a human-readable language. This means that before those stylesheets can be executed, the XSL processor first needs to convert the source into something machine-readable.
The clever part is that Saxon gives you the option to save that machine-readable output as a Stylesheet Export File, or SEF.
In practical terms, a complete set of Docuneering XSL stylesheets can be compiled into a single SEF file. Imports and includes are resolved, together with any XSL customisation applicable to that particular customer or publishing requirement.
The result is a single SEF representing the XSL publishing capability as it existed when that SEF was created. We think of this as creating a snapshot in time.
The snapshot is an important part of the Docuneering approach.
An OEM's publishing requirements may include many complex layout changes. Those requirements can be implemented as a separate customisation layer that sits on top of the maintained stylesheet CORE, without actually modifying the CORE itself.
Once the required presentation has been developed, tested and approved, the CORE and customer customisation can be compiled into an SEF. That SEF now represents the approved XSL publishing capability for that customer at that point in time.
Development of the CORE can continue and customer customisation can continue to evolve. Neither affects the existing production SEF. Customers can therefore decide when to adopt subsequent CORE releases, rather than having changes introduced into their production publishing environment automatically.
Working directly with XSL source gives a development team considerable freedom. A developer can change a template and the next transformation can immediately use that change, which is extremely useful during development. However, in a controlled live publishing environment, it can also create risks.
An approved SEF provides a boundary between stylesheet development and production publishing. Changes can continue to be made to the source, but they cannot accidentally alter the XSL contained within an existing SEF. A new production snapshot has to be deliberately created and deployed.
This does not replace an organisation's own configuration-management, testing or approval processes. It does, however, provide a clean technical point at which an approved set of XSL becomes a deployable publishing capability.
There is also a much simpler benefit: the Publishing Team gets one file.
A substantial publishing capability may consist of many interdependent XSL files, together with customer-specific customisation. The Publishing Team should not need to reconstruct or understand any of that.
If Customer A has one approved publishing configuration and Customer B has another, each can have its own SEF. The operator selects the appropriate SEF and publishes. The work required to establish each customer's XSL customisation has already been captured within that snapshot.
Source complexity does not have to become deployment complexity.
An SEF does not require a particular publishing application or prescribed deployment architecture.
Provided an appropriate Saxon environment is available, the publishing process can be invoked from a command line, an XML editor, a CSDB, a server process or another application.
Docuneering provides simple examples, including batch and VBScript implementations, but these are illustrative rather than a prescribed application architecture. An organisation can invoke the publishing process in whatever way best suits its own environment.
Creating a snapshot is more useful when the resulting publication can identify the publishing configuration that produced it.
Docuneering therefore supports publishing provenance within the generated PDF. This can include information about the CORE stylesheet version together with a free-text SEF identifier supplied through the publishing configuration.
Organisations are free to apply whatever SEF naming and versioning convention suits their own configuration-management processes. Docuneering does not prescribe one. The important point is that the information can travel with the publication, providing a mechanism for recording which XSL baseline and SEF configuration were used to produce it.
If you would like to learn more about Docuneering's S1000D Print & Publish capability, please...