Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 在XSD架构验证中防止相同的重复n次数字_Xml_Validation_Xsd - Fatal编程技术网

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

Xml 在XSD架构验证中防止相同的重复n次数字,xml,validation,xsd,Xml,Validation,Xsd,总体目标是防止美国电话号码中出现相同的重复数字。 请参见以下示例数据: 0000000000-不合法 7777-不合法 9549867899-合法 3051234567-合法 我试图在XSD验证中使用正则表达式模式。 特别是一种消极的前瞻性方法。 不幸的是,XML模式(XSD)正则表达式是有限的。 下面的正则表达式^(?(\d)\1{9,})在其他地方执行此任务,但在XSD模式中不起作用。XSD模式有其自己的相当受限的正则表达式方言,其中不包括前瞻 我能想到的唯一办法就是做得相当笨拙 0[0

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

  • 0000000000-不合法
  • 7777-不合法
  • 9549867899-合法
  • 3051234567-合法
我试图在XSD验证中使用正则表达式模式。 特别是一种消极的前瞻性方法。 不幸的是,XML模式(XSD)正则表达式是有限的。
下面的正则表达式
^(?(\d)\1{9,})
在其他地方执行此任务,但在XSD模式中不起作用。

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

我能想到的唯一办法就是做得相当笨拙

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

只有当字符串包含一对不同的数字时,该操作才会成功。

我不明白为什么正确的手机#无法根据建议的解决方案进行验证。正在运行自定义验证引擎Saxonica 9.4.0.6验证程序。。。ANIZeros.xml第8行第24列的/root[1]/r[1]/ANI[1]处出现验证错误:元素第1)条Java内置验证(Xalan Java 2.7.0)的内容“3051234567”。file:///d:/Temp/QuickWins/IDT/ANIZeros.xml:8,24:(错误)cvc模式有效:值“3051234567”对于模式“0[0-9-[0]]| 1[0-9-[1]| 2[0-9-[2]| 3[0-9-[3]| 4[0-9-[4]| 5[0-9-[5]| 6[0-9-[6]| 7[0-9-[7]| 8[0-9-[8]| 9-[0-9-[9]1249]| Anype]1249-[0-9]1249-[0-9]|对于U'.]。file:///d:/Temp/QuickWins/IDT/ANIZeros.xml:1924:(错误)cvc模式(错误)cvc模式(错误)cvc模式(错误)cvc模式(错误)cvc模式(错误)cvc模式(错误)cvc模式(错误)cvc模式(错误)cvc模式(错误)cvc模式有效:价值“0000000000”是没有方面方面有效的方面方面有效的方面有效的方面有效的方面(价值“0000000000”是没有方面方面有效的方面有效的方面有效的方面,就模式“0[0[0[0[0[0[0[0-0-0-0-0-0-0-9-9-[0-9-[0-9-[0[0-9-[1][1[1]1]1]1]1]1]1]]]);2[0-9-0-9-9-[0-9-[0-9-[0-9-[0-9-[9[1]1]3[0-9-[0-9-[0-9-[2]3 9]*)在图案的开头和结尾。@MichaelKay,这很聪明。我认为它无法修复总位数(因为不同位数前后的位数是相关的),但当然,您可以通过显式长度facet.Java内置验证(XalanJava2.7.0)来实现这一点。file:///d:/Temp/QuickWins/ANIZeros.xml:8,24:(错误)cvc模式有效:值“3051234567”对于模式“.*0[0-9-[0]]| 1[0-9-[1]| 2[0-9-[2]]| 3[0-9-[3]| 4[0-9-[4]| 5[0-9-[5]| 6[0-9-[6]| 7[0-9-[7]]| 8[0-9-[8]| ANI[0-9-[9].]。file:///d:/Temp/QuickWins/ANIZeros.xml:19,24:(错误)cvc模式有效:值“0000000000”对于模式“.*0[0-9-[0]]| 1[0-9-[1]| 2[0-9-[2]| 3[0-9-[3]]| 4[0-9-[4]| 5[0-9-[5]| 6[0-9-[6]| 7[0-9-[7]| 8[0-9-[8]| 9-[9].[0-9-[4].[9-[9].]对于ANype]。