The jstructural package implements a set of primitives for producing technical documentation. The package provides a RELAX-NG schema describing the format of structural documents and a Java library (and command line tools) for producing XHTML output.
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.