Beh, un modo probabilmente ci potrebbe essere, dal momento che con js si riesce a leggere e interpretare i dtd.
Ma non e' questo lo scopo dei dtd, i dtd sono solo file di definizione. Penso che dovresti dare un occhiata alle xslt templates, e' piu' vicina come tecnologia alle esigenze che hai esposto.