Python lxml离线验证的收益率“;“拒绝连接”;到http://www.opengis.net/kml/2.2

Python lxml离线验证的收益率“;“拒绝连接”;到http://www.opengis.net/kml/2.2,python,xsd,gis,lxml,offlineapps,Python,Xsd,Gis,Lxml,Offlineapps,我试图通过lxml和xsd验证一些XML (ogckml22.xsd)。这是离线发生的。我在那里读书 通过直接打开/读取文件 记录在案,http://www.opengis.net/kml/2.2 无效 另一篇文章: (因征求意见而澄清) 我得到的只是一个“拒绝连接”。 通过try/except,我得到的xmlschema_文档没有定义 File "<stdin>", line 1, in <module> File "<xmlschema.pxi",line

我试图通过lxml和xsd验证一些XML (ogckml22.xsd)。这是离线发生的。我在那里读书 通过直接打开/读取文件

记录在案,http://www.opengis.net/kml/2.2 无效

另一篇文章: (因征求意见而澄清)

我得到的只是一个“拒绝连接”。 通过try/except,我得到的xmlschema_文档没有定义

File "<stdin>", line 1, in <module>  
File "<xmlschema.pxi",line 105, in lxml.etree.XMLSchema.__init__ (src/lxml/lxml.etree.c:132748  
   self.error_log)  
lxml.etree.XMLSchemaParseError: connection refused  
我从未看到“文档不是有效的XML模式”消息。我只能假设使用“拒绝连接”来代替“文档消息”(默认值?),但是 我无法更彻底地阅读错误日志(在重新编译之外)

真诚地

ArrowInTree导入另外两个模式文档(atom-author-link.xsd和xAL.xsd):

输出:

<lxml.etree.XMLSchema object at 0x00D25120>

至少这对我来说是可行的。

你能提供一个再现问题的最小完整示例吗?什么是你的
lxml.etree.\uuuu version.\uuuuuu
?嗯,打印lxml.etree.\uuuu version.\uuuuuu.声明“lxml”没有定义,但“打印etree.\uuu version.\uuuuuuuuuuu”会产生“2.3.3”嗯,谢谢你的帮助,但是你引用的*.xsd文件与脚本位于同一目录中,尽管在fc17框上用xmlcatalog进行了各种旋转,我收到了同样的信息。那么您使用的是XML目录?你在问题中没有提到这一点。如果您不提供重现问题所需的所有详细信息,则很难提供帮助。xmlcatalog只是在您发布答案之后才进入现场,而不是之前。正如我所说,所有xsd文件都与脚本位于同一目录中,因此这应该是无关的http://docs.oasis-open.org/election/external/xAL.xsd“到
schemaLocation=“xAL.xsd”
?是的,确实有效。非常感谢。但是头文件和xsd是一个共同的参考框架。唉。。。。知道任何关于xmlcatalog的好教程吗…?
我知道(但它确实涉及到系统和uri)
if self._c_schema is NULL:
    raise XMLSchemaParseError(
        self.error_log._buildExceptionMessage(
            u"Document is not valid XML Schema"),
        self._error_log)
<!-- import atom:author and atom:link -->
<import namespace="http://www.w3.org/2005/Atom" 
        schemaLocation="atom-author-link.xsd"/>

<!-- import xAL:Address -->
<import namespace="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0" 
        schemaLocation="http://docs.oasis-open.org/election/external/xAL.xsd"/>
from lxml import etree

xmlschema_doc = etree.parse("ogckml22.xsd") 
xmlschema = etree.XMLSchema(xmlschema_doc)

print xmlschema
<lxml.etree.XMLSchema object at 0x00D25120>
xmlschema_doc = etree.parse("http://www.opengis.net/kml/2.2")