我正在尝试使用 lxml 在 Python 中验证 XML 文档。
DTD 验证会将 xmlns 命名空间的存在视为错误。
此示例脚本
from lxml import etree
from StringIO import StringIO
dtd = etree.DTD(StringIO("<!ELEMENT a EMPTY>"))
root = etree.XML("<a></a>")
print(dtd.validate(root))
root = etree.XML('<a xmlns:sru="http://www.loc.gov/zing/srw/"></a>')
print(dtd.validate(root))
print dtd.error_log
产量
True
False
<string>:1:0:ERROR:VALID:DTD_UNKNOWN_ATTRIBUTE: No declaration for attribute xmlns:sru of element a
如何让 lxml 根据 DTD 验证我的文档而不抱怨 xml 命名空间?