我想使用 Relax NG 模式来验证 XML 文件。作为验证的一部分,我想确保一组节点中没有空白。例如,我希望前两个<emptyCheck>
节点进行验证,但在此示例中第三个和第四个节点失败:
<?xml version="1.0" encoding="UTF-8"?>
<testRoot>
<emptyCheck/>
<emptyCheck></emptyCheck>
<emptyCheck> </emptyCheck>
<emptyCheck>x</emptyCheck>
</testRoot>
下面的 Relax NG Schema 几乎可以工作。对于 的第四个实例,上述示例 XML 失败<emptyCheck>
,但对于第三个实例则没有。
<?xml version="1.0" encoding="UTF-8"?>
<grammar ns="" xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="testRoot">
<oneOrMore>
<element name="emptyCheck">
<empty/>
</element>
</oneOrMore>
</element>
</start>
</grammar>
我认识到,在大多数 XML 处理中,只有空格的节点并不重要。我仍然想解决这个问题,以便我可以执行编码风格指南。那么,有没有办法设置一个 Relax NG 模式,这样当一个节点应该完全为空时,文档将不会验证节点中是否只有空白?