XHTML. Seriously. If what you want looks like an extensible document type with custom embedded data that you want to reliably parse out, that's what it's there for.
progress has sometimes a strange "helix" like structure: revisiting and re-using valuable old patterns after fixing their pain points