根据lxml文档"DTD是根据解析文档的DOCTYPE自动检索的.您所要做的就是使用启用了DTD验证的解析器."
http://lxml.de/validation.html#validation-at-parse-time
但是,如果要对XML架构进行验证,则需要显式引用一个.
我想知道为什么这是,并想知道是否有一个库或函数可以做到这一点.或者甚至解释如何让自己发生这种情况.问题是似乎有很多方法可以引用XSD,我需要支持所有这些方法.
验证不是问题.问题是如何确定要验证的模式.理想情况下,这也可以处理内联模式.
更新:
这是一个例子.
simpletest.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="name" type="xs:string"/>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)
simpletest.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<name xmlns="http://www.example.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org simpletest.xsd">foo</name>
Run Code Online (Sandbox Code Playgroud)
我想做类似以下的事情:
>>> parser = etree.XMLParser(xsd_validation=True)
>>> tree = etree.parse("simpletest.xml", parser)
Run Code Online (Sandbox Code Playgroud)