TODO - 2008-11-19
-----------------

	- Add access methods and make node structure opaque.
	  -- To allow for C++ migration
	  -- To make future binary compatibility easier
	- Add C++ class/struct.
	  -- Make this the core implementation which the C API accesses?
	  -- Class would allow for subclassing, is that necessary?
	- Binary XML support???
	- Add "--docset foo" option to generate an Xcode docset bundle,
	  "--feed-name bar" and "--feed-url http://..." 

docset
  Contents
    Info.plist
    Nodes.xml
    Resources
      Documents
        index.html
    Tokens.xml

Run /Developer/usr/bin/docsetutil to generate index files

Info.plist:
  DocSetFeedName ("cups.org", "Easy Software Products", etc.)
  DocSetFeedURL ("")
  CFBundleName (title)
  CFBundleIdentifier (docset)

Nodes.xml:
  <?xml version="1.0" encoding="utf-8"?> 
  <DocSetNodes version="1.0">
    <TOC>
      <Node id="1" type="folder">
	<Name>name</Name>
	<Path>index.html</Path>
      </Node>
    </TOC>
  </DocSetNodes>

Tokens.xml:
  <?xml version="1.0" encoding="utf-8"?> 
  <File path="index.html">
    <Token>
      <TokenIdentifier>
	<Name></Name>
	<APILanguage>c or cpp</APILanguage>
	<Type>type</Type>
	<Scope>classname</Scope>
      </TokenIdentifier>
      <Anchor>anchor string</Anchor>
      <Abstract>summary</Abstract>
      <Declaration>prototype</Declaration>

      OR
      <TokenIdentifier>//apple_ref/lang/type/scope/name</TokenIdentifier> 

    </Token>
    ...
  </File>

types: http://developer.apple.com/documentation/DeveloperTools/Conceptual/HeaderDoc/anchors/chapter_950_section_2.html

tag		struct, union, or enum tag
econst		an enumerated constant—that is, a symbol defined inside an enum
tdef		typedef name (or Pascal type)
data		global or file-static data
func		function name (without '()')
cl		class name
instm		an instance method 'clm' a class (or static [in java or c++]) method
func		C++ scoped function (i.e. not extern 'C'); includes return type and signature.
