首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Schematron验证多个元素

Schematron验证多个元素
EN

Stack Overflow用户
提问于 2015-10-25 15:39:38
回答 2查看 1.1K关注 0票数 1

假设我有一个XML文档定义:

代码语言:javascript
复制
<people>

  <person>
    <city>London</city>
  </person>
  <person>
    <city>Paris</city>
  </person>

</people>

我想要一个能检查每个人是否住在伦敦的示意图。

我试过:

代码语言:javascript
复制
<sch:rule context="people">
            <sch:assert test="person/city = 'London'">Everybody must live in London!</sch:assert>
 </sch:rule>

然而,只要有一个人住在伦敦,这种情况就会重现。有什么方法可以告诉schematron对匹配XPathcondition person/city的每个元素应用测试吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-25 15:43:48

“没有人可以住在伦敦以外”怎么样?

代码语言:javascript
复制
<sch:rule context="people">
    <sch:assert test="not(person[city != 'London'])">Everybody must live in London!</sch:assert>
</sch:rule>
票数 6
EN

Stack Overflow用户

发布于 2015-10-25 15:49:53

这有许多不同的解决方案。示例解决方案1,如果有人不在伦敦,请报告:

代码语言:javascript
复制
<sch:rule context="people">
  <sch:report test="person/city != 'London'">Everybody must live in London!</sch:report>
</sch:rule>

示例解决方案2断言每个人都必须居住在伦敦,请注意,这会报告每个不居住在伦敦的人都是一个错误,而不仅仅是报告节点people

代码语言:javascript
复制
<sch:rule context="people/person">
    <sch:assert test="city = 'London'">This person should be living in london</sch:assert>
</sch:rule>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33331548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档