Answers:
NCName是非冒号的名称,例如“名称”。与QName相比,后者是限定名称,例如“ ns:name”。如果您的名字不应该由不同的命名空间限定,那么它们就是NCNames。
xs:string完全不限制您的名称,但是xs:NCName基本上禁止在字符串中出现“:”。
@skyl实际上激怒了我写这个答案,所以请注意冗余。
NCName代表“非殖民名称”。可以将NCName定义为XML Schema正则表达式[\i-[:]][\c-[:]]*
\i和\c是在XML模式定义中所定义的多字符逃逸。
http://www.w3.org/TR/xmlschema-2/#dt-ccesN
\i是一组初始XML名称字符的转义符,\c也是一组XML名称字符。 [\i-[:]]表示由该组组成的组,\i不包括由冒号组成的组:。因此,用简单的英语来说,它的意思是“任何初始字符,但不是:”。整个正则表达式表示为“一个初始XML名称字符,但不是冒号,后接零个或多个XML名称字符,但不是冒号。”
NCName来的实际限制是它不能包含像几个符号字符:,@,$,%,&,/,+,,,;,空白字符或不同括号。此外,NCName不能以数字,点或减号开头,尽管它们可以稍后出现在NCName中。
在符合名称空间的XML文档中,所有名称都必须是限定名称或NCName。以下值必须是NCNames(非限定名称):
实际上是...
允许的字符: -,.,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
另外,-并且.不能用作值的第一个字符。
不允许的字符: ,!,",#,$,%,&,',(,),*,+,,,/,:,;,<,=,>,?,@,[,\,],^,`,{,|,},~
http://books.xmlschemata.org/relaxng/ch19-77215.html
没有空格或冒号。允许“ _”和“-”。
您将使用它而不是字符串,以便可以验证该值是否限制在允许的范围内。例如,它很好地映射到名称/标识符的某些约定,例如django的“ slug”概念。
我支持[\i-[:]][\c-[:]]*为我们翻译成英语的人。
[\i-[:]][\c-[:]]*成英语的答案。如您所愿,继续前进并投票;)
xs:NCName