簡體   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