xsd -xml正则表达式验证不适合我使用JAXB
发布时间:2020-12-16 23:07:10 所属栏目:百科 来源:网络整理
导读:我编写了一个简单的XSD,我在其中编写了XSD模式 xsd:element name="xx"xsd:simpleType xsd:restriction base="xsd:string" xsd:pattern value="^[a-z]+" /xsd:pattern /xsd:restriction/xsd:simpleType/xsd:element 当我使用jaxb执行XML-XSD验证时,始终会遇到
我编写了一个简单的XSD,我在其中编写了XSD模式
<xsd:element name="xx"> <xsd:simpleType > <xsd:restriction base="xsd:string"> <xsd:pattern value="^[a-z]+"> </xsd:pattern> </xsd:restriction> </xsd:simpleType> </xsd:element> 当我使用jaxb执行XML-XSD验证时,始终会遇到XX标记的错误.例如: <xx>abcd</xx> 我不确定为什么会出现这种奇怪的行为?我希望我的正则表达式是正确的,上面的例子应该通过验证.我错过了什么? 解决方法
您需要从表达式中删除锚点^. XSD验证器无法识别^或$锚点,但将它们解释为文字字符.您可以通过将XML更改为< xx> ^ abcd< / xx>来验证这一点.并根据您当前的XSD验证它.
原因是您的模式自动绑定到字符串的开头和结尾.与尝试匹配值的正则表达式不同,此正则表达式用于验证元素的整个内容,因此您必须创建一个模式以完全匹配字段中显示的所有内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |