2014-10-10 243 views
0
<xs:simpleType name="Personalname"> 
<xs:restriction base="xs:string"> 
<xs:pattern value=".{0,0}|\w+([-]\w+)*((\w)+)+"/> 
</xs:restriction> 
</xs:simpleType> 

我想限制我的XML輸入值上述pattern.It可以接受兩個名稱之間的連字符。正則表達式驗證XML模式

這應該除外,如「ANKIT邦薩爾」或「ANKIT-邦薩爾阿加瓦爾」 0R「ANKIT邦薩爾邦薩爾」根據該模式的邏輯名稱

但每當我用下面的方式運行它給我一個錯誤像

[CDATA ['Personalname'元素根據其數據類型具有無效值。發生錯誤時,(1,329)。]

+0

'{0,0}' - >它應該是安全的拋出這個遠(但保留'|'單獨的)。(不回答你的問題) – nhahtdh 2014-10-10 08:23:17

+0

好吧......這是反正不是問題的解決方案。問題的主要部分是跟在|之後符號 – 2014-10-10 08:27:37

回答

0
^((?:(?:\b[A-Za-z0-9]+[ -])+)\w+)$ 

你可以試試this.See演示。

http://regex101.com/r/xT7yD8/11

+0

Thanks..Its在編譯器中成功驗證。但在我的代碼中給出了相同的錯誤。我試圖改變的原始字符串是「」 – 2014-10-10 09:39:10

+0

@AnkitBansal嘗試刪除'^'和'$',然後再試一次 – vks 2014-10-10 09:40:26

+0

除了「Ankit Bansal」之外,您給出的表達式除外,但不包括「Ankit-Bansal bansal」等等......我認爲,一些其他的驗證是造成這個問題......但據我所知,只有當xml驗證失敗時纔會收到此錯誤。 – 2014-10-10 10:01:27