The
DocBook system is similar to
structural in that it allows for metadata within a document. DocBook, however, takes a different approach in that it defines elements for all of the things that authors may be expected to talk about in technical documentation. For example, if an author wants to tag a name as being the name of a software package, the name has to be contained within a
package element. In terms of semantic simplicity, the sheer number of defined elements and the resulting possible permutations of elements mean that it is difficult to make the case that DocBook is in any way
simple. In the author's experience, there are many combinations of elements in DocBook that are valid according to the schema but cannot actually be used in practice because the resulting XHTML output becomes ugly or difficult to style in a useful manner. DocBook is, however, strongly and unambiguously specified: If a document is well-formed XML, it can be machine-checked against the published schema and it is immediately known whether or not the document is valid. DocBook also allows for modular documents via the standard XML
XInclude mechanism. Unfortunately, due to DocBook being defined in XML, writing documents using it can be an exercise in physical stamina. XML is notorious for being syntactically heavyweight and really requires editor support to avoid causing repetitive strain injury.