2014-10-10 182 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