假设我有一个XML文档定义:
<people>
<person>
<city>London</city>
</person>
<person>
<city>Paris</city>
</person>
</people>
我想要一个检查每个人住在伦敦的图示器。
我试过了:
<sch:rule context="people">
<sch:assert test="person/city = 'London'">Everybody must live in London!</sch:assert>
</sch:rule>
但是,只要有一个人居住在伦敦,这将会恢复正常。有没有办法告诉schematron将测试应用于匹配XPathcondition人/城市的每个元素?
答案 0 :(得分:6)
&#34;没有人可以住在伦敦以外的地方&#34;:
gl.finish
答案 1 :(得分:3)
这有许多不同的解决方案。示例解决方案1,报告是否有人不住在伦敦:
<sch:rule context="people">
<sch:report test="person/city != 'London'">Everybody must live in London!</sch:report>
</sch:rule>
示例解决方案2,断言每个人都必须住在伦敦,请注意,这会将每个不在伦敦的人报告为错误,而不是仅报告节点people
。
<sch:rule context="people/person">
<sch:assert test="city = 'London'">This person should be living in london</sch:assert>
</sch:rule>