InDesign CS2 provides an export format called Interchange (INX) This produces an xml document which can be used for rolling InDesign documents back to previous versions. Although Adobe documentation denotes that this format should only be used for backward compatibility because it may change the INX schema in future releases, a tinkering guy like myself cant help but notice that if we generate an INX document from an XSL transformation on raw data we have a means of generating unique InDesign documents instead of using XML feeds.
To introduce a proof-of-concept I constructed an InDesign document based upon a PIL from a brand of well known hay-fever tablets. I then exported this format out as INX format using the exported INX as a guide attempted to produce and XSLT to take data from KMS and run out a formatted InDesign document. This works!
A few things are worth noticing:
ACE processing instructions: these insert characters disallowed in a well formed XML document - see http://partners.adobe.com/public/developer/indesign/sdk/explodedSDK/cs.01/docs/references/api/TextChar_8h-source.html
for a full listing
aid procssing instructions: these a markers and usually can be ignored when producing an INX using XSLT
Text nodes - each text node is preceded with c_ - this indicates that the element content is a string.
Lists - an IX list is contained within a <pcnt> element and each item is separated by a paragraph break