SGML/XML syntax presumes a tree structure and consequently imposes that presumption upon texts. From DTDs and XML schemas to research on the nature of markup and well-formedness, that presumption has informed such efforts. However useful that view may be for some purposes, it has limited and impoverished markup for texts. Markup under any SGML/XML convention is unable to easily represent arbitrary structures or to represent overlapping or concurrent structures. Those limitations spring directly from the presumptions about the nature of markup syntax. The presumption of a tree for syntax and thereby for the structure of texts is unnecessary and only a claim about texts, not an inherent property of texts. These difficulties are compounded in the rich set of XML processing technologies (DOM, XPath, XSLT, XQuery) all of which rely upon the tree-based syntax and the consequent presumption. Markup syntax without the presumption of a tree structure allows the recording of arbitrary structures in a text (including a tree if so desired) as well as the overlapping structures that have so far eluded a commonly used solution.
But see the author package.