繁体   English   中英

xmlns干扰了在python中使用lxml对DTD进行验证

[英]Validation against DTD with lxml in python is disturbed by xmlns

我正在尝试使用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在不抱怨xml名称空间的情况下针对DTD验证我的文档?

您必须为DTD中的a元素定义xmlns:sru属性。 它目前没有。

<!ELEMENT a EMPTY>
<!ATTLIST a xmlns:sru CDATA #IMPLIED>

这为元素a上的xmlns:sru定义了可选的CDATA属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM