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