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.


  • Full RELAX-NG schema for document validation.
  • Implemented as pure Java for platform-independence.
  • Carefully namespaced schema for ease of combination with other XML documents.
  • Extensive documentation.
  • Outputs clean and valid XHTML 1.0 Strict.
  • Maven plugin for producing documentation as part of a standard Maven build.
  • Complete and documented CSS for resulting XHTML, for ease of customization of output.
  • ISC license.