How do I validate xml against a DTD file in Python
Another good option is lxml’s validation which I find quite pleasant to use. A simple example taken from the lxml site: from StringIO import StringIO from lxml import etree dtd = etree.DTD(StringIO(“””<!ELEMENT foo EMPTY>”””)) root = etree.XML(“<foo/>”) print(dtd.validate(root)) # True root = etree.XML(“<foo>bar</foo>”) print(dtd.validate(root)) # False print(dtd.error_log.filter_from_errors()) # <string>:1:0:ERROR:VALID:DTD_NOT_EMPTY: Element foo was declared EMPTY this … Read more