Single source documentation tool

One that satisfies most of your requirements, that I've used before, is AsciiDoc.

AsciiDoc isn't an XML source format though, instead it opts for a simple text format. It can output HTML and Docbook, which can be rendered into PDF or other formats. The source text is nearly good enough for plain text presentation, too.

Another popular choice along the same lines is reStructuredText.


I've been considering evangelizing DocBook as a replacement for Word in our engineering group. There are a number of toolchains available. The easiest for engineers is probably DocBook XSL, Apache FOP, and either Ant or Make. This is how I have been doing my DocBook stuff. If you are really into LaTeX, then you might want to check out DBLaTeX for a DocBook to LaTeX publishing environment.

If you don't mind stepping outside of the free environments, then the <oXygen/> XML Editor offers a pretty nice WYSIWYG DocBook editor. I haven't used it that much, but it does look pretty promising.


Doxygen is documentation generator that's quite popular and can output documents in a variety of formats. Although its primary purpose to build documentation extracted from source comments (from numerous languages), it's also quite usable as a general manual writing tool. In fact, the Doxygen website and manual are generated in this way.