如何解决XSD模式验证问题
我具有以下XSD类型:
<xs:simpleType name="MyType">
<xs:restriction base="xs:token">
<xs:maxLength value="256" />
<xs:pattern value="[A-Z^-z-]+" />
</xs:restriction>
</xs:simpleType>
在我的xml文件中,我有一个PECDestinatario条目,其类型为MyType。 它的值为“ test-value”。 当我使用xmllint针对xsd进行验证时,它失败并显示以下错误:
元素PECDestinatario:模式有效性错误:元素'PECDestinatario':[方面'模式']模式'[A-Z ^ -z-] +'不接受值'test-value'
如果我从“测试值”中减去负号,则表示效果很好。 似乎回旋音是模式中的一个问题-但是为什么(不在括号的开头)?
解决方法
我认为可能是字符范围内的连字符而不是抑扬音。字符范围内连字符的XSD 1.0规则非常混乱和混乱,而且不同供应商对它们的解释也不同(Microsoft甚至没有尝试,它们只是使用来自.NET regex引擎的规则)。
尝试将其写为'[A-Z^-z\-]+
,以获得更好的可移植性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。