XML is all you need
I believe an all-declarative, all-XML architecture is appropriate for this task
The (reflected) XML Infoset and XSLT are all we need
No API
No special-purpose code
Overview of a declarative comparison architecture
Henry S. Thompson