Regex XSD 1.0正则表达式与两个特定的十六进制字符串不匹配

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 <?

我一直在尝试在XML模式中使用正则表达式来匹配
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实现的验证结果比我最初设想的要复杂一些。事实证明,我们暂时无法处理多个模式输入。谢谢你的帮助,我将尝试改变我们的体系结构,以允许这一点。