在XSD架构验证中防止相同的重复n次数字

时间:2012-12-27 14:29:13

标签: xml validation xsd

总体目标是防止美国电话号码中的重复数字相同。 请参阅以下示例数据:

  • 0000000000 - 不合法
  • 7777777777 - 不合法
  • 9549867899 - legal
  • 3051234567 - legal

我正在尝试在XSD验证中使用正则表达式模式。 特别是,一种消极的前瞻性方法。 不幸的是,XML Schema(XSD)正则表达式是有限的。 以下正则表达式 ^(?!(\d)\1{9,}) 可以在其他任何地方完成工作,但不能在XSD架构中工作。

1 个答案:

答案 0 :(得分:2)

XSD Schema有自己相当受限的正则表达式方言,不包括前瞻。

我能想到这样做的唯一方法就是相当笨拙

0[0-9-[0]]|1[0-9-[1]]|2[0-9-[2]]|3[0-9-[3]]|....

仅当字符串包含一对不同的数字时才会成功。