如何在LXML

时间:2018-06-18 16:36:58

标签: python xml xsd lxml

我正在尝试将一些链接的XSD文件作为LXML架构加载,但我怀疑它们未通过<include><import>正确加载。

LXML是否需要手动导入每个链接的XSD文件?如果是这样,那怎么办呢?如果没有,我的方法有什么问题:

我所指的确切文件可以在这里找到:https://github.com/NordPool/Day-Ahead-Public

解压缩文件并在目录中运行python后,我执行以下操作:

from lxml import etree
xmlschema_doc = etree.parse('urn-ediel-org-neg-spotmarket-biddocument-1-0.xsd')
etree.XMLSchema(xmlschema_doc)

但是我收到以下错误:

---------------------------------------------------------------------------
XMLSchemaParseError                       Traceback (most recent call last)
<ipython-input-273-fd473f61b95f> in <module>()
      1 xmlschema_doc = etree.parse(xsdRoot + 'urn-ediel-org-neg-spotmarket-biddocument-1-0.xsd')
----> 2 etree.XMLSchema(xmlschema_doc)

src/lxml/xmlschema.pxi in lxml.etree.XMLSchema.__init__ (src/lxml/lxml.etree.c:191759)()

XMLSchemaParseError: simple type 'LocalRestrictedAllocationModeType', attribute 'base': The QName value '{urn:entsoe.eu:wgedi:codelists}LocalAllocationModeType' does not resolve to a(n) simple type definition., line 5

某些XSD文件应该在../../core/中,但修复文件中的引用以使用同一目录并不能解决问题。

我确信这可以在Altova XMLSpy中验证。

0 个答案:

没有答案