1

RELAX NG スキーマ ドキュメントと、このスキーマに準拠する XML インスタンス ドキュメントを作成しました。ファイルの解析と検証に python lxml ライブラリを使用しています。

私は lxml.objectify API の使用を検討しており、「スキーマのアサート」セクションに到達するまで、多かれ少なかれ問題なくここの例に従いました。

例では 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 はRELAX NG スキーマではなく、W3C XML スキーマを使用して検証しますか?

4

0 に答える 0