The Outline Markup Language is an XML application for formatting data in a hierarchical structure. The data is organized in groupings of node elements which may contain child nodes, text elements or references to nodes both internal and external to the document.
Nodes may be tagged as public or private, although it is left to individual applications to decide how, or what, that actually means.
Additionally, node, text and xref elements may be extended with user or application defined attributes via entity declarations. An example would be to use the basic otlml DTD for a "to do" list while assigning document-specific "start-time" and "end-time" attributes to the node element in the DOCTYPE declaration.
The DTD owes a debt to work already untaken by UserLand Inc. in creating the Outline Processor Markup Language (http://www.opml.org) Although, part of the motivation for creating this application was to address some perceived shortcomings in OPML, it would be wrong not to acknowledge the example set by the Userland gang.
It is bit a wonkish side, for sure, but I think necessary to do the whizbang stuff properly. My personal feeling is that XML wasn't actually meant to be read, let alone written, by humans. It should be possible, failing all else, but that's not the same thing.
I am hoping that the whole setup is appealing enough to get people interested in developing GUI apps that will "hide" all the gibberish (uids, xpointers, etc) better left to a computer anyway. I just don't have the time or the experience with that side of things. And I have dangerous willingness to use Emacs ;-)