1
總體目標是防止美國電話號碼中的重複數字相同。 請參見下面的示例數據:防止在XSD模式驗證中重複n次相同的數字
- 0000000000 - 不合法的
- 7777777777 - 不合法的
- 9549867899 - 合法
- 3051234567 - 合法
我想使用正則表達式模式中XSD驗證。特別是,負向預測方法。 不幸的是,XML Schema(XSD)正則表達式是有限的。 下面的正則表達式^(?!(\d)\1{9,})
做這項工作在其他地方,但不是在XSD架構工作。
我不明白爲什麼正確的手機#沒有通過建議的解決方案進行驗證。 正在運行自定義驗證引擎Saxonica 9.4.0.6驗證程序... ANIZeros.xml中第8行第24列上/ root [1]/r [1]/ANI [1]處的驗證錯誤: 內容「3051234567」元素與所需的簡單類型不匹配。值 「3051234567」 違反了圖案刻面 「0 [0-9- [0]] | 1 [0-9- [1]] | 2 [0-9- [2 ...」 元素的 類型的ANI(請參閱http://www.w3.org/TR/xmlschema11-2/#cvc-datatype-valid第1章) –
Java內置驗證(Xalan Java 2.7.0)。 文件:/// d:/Temp/QuickWins/IDT/ANIZeros.xml:8,24:(錯誤)CVC-圖案有效:值 '3051234567' 不是小面有效的相對於模式「0 [O- 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]]'爲類型'#AnonType_ANI'。 文件:/// d:/Temp/QuickWins/IDT/ANIZeros.xml:19,24:(錯誤)CVC-圖案有效:值 '0000000000' 不是小面有效的相對於模式「0 [O- 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]]'爲類型'#AnonType_ANI'。 –
對不起,XSD正則表達式被隱式錨定,因此您需要在模式的開始和結尾處添加。*(或[0-9] *)。 –