擅长:python、mysql、java
<p>如果要从命令行检查语法vs<strong>Compact</strong>RelaxNG语法,可以使用<a href="https://pypi.org/project/jingtrang/" rel="nofollow noreferrer">jingtrang</a>模块中的<code>pyjing</code>。在</p>
<p>它支持<strong>.rnc</strong>文件,并显示比<code>True</code>或{<cd3>}更多的细节。例如:</p>
<pre><code>C:\>pyjing -c root.rnc invalid.xml
C:\invalid.xml:9:9: error: element "name" not allowed here; expected the element end-tag or element "bounds"
</code></pre>
<p><em>注意:它是Java的Python包装器,因此需要安装Java。</em></p>
<p>如果您想从Python内部检查语法,可以</p>
<ol>
<li><p>使用<code>pytrang</code>(from<em>jingtrang</em>包装器)将“Compact RelaxNG”(<strong>.rnc</strong>)转换为XML RelaxNG(<strong>.rng</strong>):
<code>pytrang root.rnc root.rng</code></p></li>
<li><p>使用<code>lxml</code>来解析转换后的<strong>.rng</strong>文件:<a href="https://lxml.de/validation.html#relaxng" rel="nofollow noreferrer">https://lxml.de/validation.html#relaxng</a></p></li>
</ol>
<p>应该是这样的:</p>
^{pr2}$