命令行 xmllint --schema 验证失败但 $? 返回 0
我的输入.xml:
<myinput><header>mytestvalue</header></myinput>
我的架构.xsd
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="myinput" type="xsd:string"/>
</xsd:schema>
命令:
$xmllint --schema myschema.xsd myinput.xml
结果:
Element myinput: child header should not be present
myinput.xml fails to validate
命令:
$echo $?
结果:
0
有人能告诉我为什么 xmllint 模式验证失败不会作为错误返回吗?或者建议我如何在我的 shell 脚本中将此捕获为错误?在我的 shell 脚本中,当前我正在“if”块中验证上述 xmllint 命令,它仅因 xml 格式正确而失败,但因模式验证失败而成功。
如果上述内容没有作为错误返回,我是否应该在 xmllint 输出上执行“grep 失败”的丑陋方式来确定模式验证是成功还是失败?有什么想法吗?