io7m
io7m-jstructural 3.1.0
1.1
Orientation
1.1.1
Overview
1
The jstructural package implements a set of primitives for producing technical documentation. The package provides RELAX-NG and XSD schemas describing the format of structural documents and a set of Java tools for producing XHTML 1.0 Strict output.
2
In contrast to other systems such as DocBook, the structural language only defines elements concerning the structure of the document and not the semantics of the elements. The intention is that higher level languages will produce structural documents as output and then use the provided stylesheets to get various services such as table of contents generation, chapter numbering, footnotes, et cetera, without having to re-implement all of those features for each new language.
1.1.2
Portability
1
The canonical format for the structural schema is RELAX-NG, but an XSD schema (generated from the RELAX-NG schema is also provided, for validation using tools that do not support RELAX-NG).
2
The provided structural to XHTML translator is written in pure Java and should be usable on any JVM that supports Java 6 and newer.
1.1.3
Simplicity
1
As the structural language focuses only on structural elements, it is far simpler than any of the other XML documentation formats. As an example, DocBook, which mixes structural and semantic elements, defines nearly 400 elements as opposed to the 30 or so defined by the structural language.
2
Given the small number of elements and the relatively strict schema, the number of possible permutations of elements is low and, as a result, the XHTML output is easily predictable [0].

[0]
There are various combinations of DocBook elements that are valid according to the schema but cannot realistically be used due to the resulting XHTML output.