lxml的objectify.makeparser可以使用RELAX NG模式吗?

时间:2012-09-11 08:37:47

标签: python lxml relaxng

我创建了一个RELAX NG架构文档和符合此架构的XML实例文档。我使用python lxml库来解析和验证文件。

我正在研究使用lxml.objectify API并在示例here之前或多或少地没有问题,直到我到达"断言架构"部分。

我在示例中看到它使用的是etree.XMLSchema类型但我认为/希望我能以某种方式传递etree.RelaxNG类型,但是唉:

relaxng_doc = etree.parse('schema/link.rng')
relaxng = etree.RelaxNG(relaxng_doc)
parser = objectify.makeparser(schema = relaxng)

给我:

Traceback (most recent call last):
File "C:\Users\rubin\Source\Projects\Even\even.py", line 26, in <module>
parser = objectify.makeparser(schema = relaxng)
File "lxml.objectify.pyx", line 1801, in lxml.objectify.makeparser  (src/lxml\lxml.objectify.c:19114)
File "parser.pxi", line 1261, in lxml.etree.XMLParser.__init__ (src/lxml\lxml.etree.c:80303)
TypeError: Argument 'schema' has incorrect type (expected lxml.etree.XMLSchema, got lxml.etree.RelaxNG)

我对这些东西还很陌生,所以在我开始接受lxml.objectify的makeparser只能使用W3C XML Schema 1.0 xsd解析器之前,我想我在这里问:我是否认为lxml.objectify API只能使用W3C XML Schema进行验证,而不能使用RELAX NG模式进行验证?

0 个答案:

没有答案
相关问题