首页 > 解决方案 > 如何使用 XSD 禁止元素值中的内容

问题描述

我希望我的 XSD 架构禁止元素中的某些内容。

示例 XML:

<MyElement>This is some valid content.</MyElement>
<MyElement>This content ((( is now allowed )))</MyElement>

我要阻止的内容是多个字符串(即不仅仅是单个字符),(((例如。

我可以使用正则表达式实现限制,但似乎 <xs:pattern> 不允许环视,并希望通过指定有效值而不是无效值来限制内容。

建议?

标签: xmlxsdxsd-validation

解决方案


想到的唯一方法是使用 XSD 1.1 断言,例如

<xs:assert test="not(matches(., 'some-pattern'))"/>

但当然,这只适用于 XSD 1.1 处理器。


推荐阅读