Regex XSD 1.0正则表达式与两个特定的十六进制字符串不匹配
我一直在尝试在XML模式中使用正则表达式来匹配Regex XSD 1.0正则表达式与两个特定的十六进制字符串不匹配,regex,xml,xsd,xsd-validation,xml-validation,Regex,Xml,Xsd,Xsd Validation,Xml Validation,我一直在尝试在XML模式中使用正则表达式来匹配000001-fffff e范围内的十六进制字符串。我可以使000000或ffffffff不匹配,但不能在一个表达式中同时使用这两个表达式 应匹配的字符串:EFEFEFEF,EEEEE F,FFFFF E,101010,10000,000001 不应匹配的字符串:000000,FFFFFF 有人有什么想法吗?这几天来,我一直在用头敲击键盘 简而言之,应允许除000000和FFFFFF之外的所有6位十六进制值。以下XSD只需要XSD 1.0 <?
000001-fffff e
范围内的十六进制字符串。我可以使000000
或ffffffff
不匹配,但不能在一个表达式中同时使用这两个表达式
应匹配的字符串:EFEFEFEF
,EEEEE F
,FFFFF E
,101010
,10000
,000001
不应匹配的字符串:000000
,FFFFFF
有人有什么想法吗?这几天来,我一直在用头敲击键盘
简而言之,应允许除
000000
和FFFFFF
之外的所有6位十六进制值。以下XSD只需要XSD 1.0
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="OneHexDigitNot0">
<xs:restriction base="xs:string">
<xs:pattern value="[1-9A-F][0-9A-F]{5}"/>
<xs:pattern value="[0-9A-F]{1}[1-9A-F][0-9A-F]{4}"/>
<xs:pattern value="[0-9A-F]{2}[1-9A-F][0-9A-F]{3}"/>
<xs:pattern value="[0-9A-F]{3}[1-9A-F][0-9A-F]{2}"/>
<xs:pattern value="[0-9A-F]{4}[1-9A-F][0-9A-F]{1}"/>
<xs:pattern value="[0-9A-F]{5}[1-9A-F]"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="OneHexDigitNot0AndOneHexDigitNotF">
<xs:restriction base="OneHexDigitNot0">
<xs:pattern value="[0-9A-E][0-9A-F]{5}"/>
<xs:pattern value="[0-9A-F]{1}[0-9A-E][0-9A-F]{4}"/>
<xs:pattern value="[0-9A-F]{2}[0-9A-E][0-9A-F]{3}"/>
<xs:pattern value="[0-9A-F]{3}[0-9A-E][0-9A-F]{2}"/>
<xs:pattern value="[0-9A-F]{4}[0-9A-E][0-9A-F]{1}"/>
<xs:pattern value="[0-9A-F]{5}[0-9A-E]"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="r" type="OneHexDigitNot0AndOneHexDigitNotF"/>
</xs:schema>
将根据请求成功验证具有
r
根元素和6位十六进制内容的XML文档,但000000和FFFFFF除外。不,严格为6位。我知道基本的正则表达式,但是XSD变体有一些限制,这让我很反感。是的,我的测试环境有点慢。我兴奋地编辑,但最后一次构建失败了。哎哟。你觉得下面的内容对你有用吗?我相信是的,但是我们使用XSD实现的验证结果比我最初设想的要复杂一些。事实证明,我们暂时无法处理多个模式输入。谢谢你的帮助,我将尝试改变我们的体系结构,以允许这一点。