4 ответов:
NCName не колонизировали имя например "имя". По сравнению с QName, который является квалифицированным именем, например "ns: name". Если ваши имена не должны быть квалифицированы различными пространствами имен, то они являются NCNames.
xs:string не накладывает никаких ограничений на ваши имена вообще, но xs:NCName в основном запрещает ":" появляться в строке.
@skyl практически спровоцировал меня написать этот ответ, поэтому, пожалуйста, обратите внимание на избыточность.
NCNameозначает "не колонизировали имя". NCName можно определить как регулярное выражение схемы XML[\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 не может начинаться с числа, точки или символа минус, хотя они могут появиться позже в NCName.где нужны NCNames
в пространстве имен соответствуют XML-документы все имена должны быть либо полные имена, либо NCNames. следующие значения должны быть NCNames (не полные имена):
- префиксы пространства имен
- значения, представляющие идентификатор
- значения, представляющие IDREF
- значения, представляющие нотацию
- цели инструкции по обработке
- имена сущностей
практически говоря...
допустимые символы:
-,.,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-[:]]*переводится на английский язык для нас.
Comments