We definitely think that XML is the way to go; in fact, our native file format is
a series of XML transactions, compressed for efficiency using the standard gzip library.
Rather than trying to map tasks, projects, contexts, and folders to points in an outline, we use object-appropriate elements like <task>, <project>, <context>, and <folder>, which have subelements like <name>, <note>, and <completed>.
If you'd like to see a nicely formatted XML copy of your current OmniFocus data, try running this command in a Terminal window:
Code:
gzcat "Library/Application Support/OmniFocus/OmniFocus.ofocus"/*.xml | tidy -quiet -xml -utf8 -indent