Відповіді:
NCName - неколонізована назва, наприклад, "ім'я". Порівняно з QName, яке має кваліфіковане ім'я, наприклад, "ns: name". Якщо ваші імена не мають бути кваліфіковані за різними просторами імен, то це NCNames.
xs: string взагалі не обмежує ваші імена, але xs: NCName в основному забороняє ":" відображатись у рядку.
@skyl практично змусив мене написати цю відповідь, тому, будь ласка, зауважте надмірність.
NCName
означає "неколонізована назва". NCName може бути визначений як регулярний вираз XML-схеми[\i-[:]][\c-[:]]*
\i
і \c
є багатосимвольними втечами, визначеними у визначенні XML Schema.
http://www.w3.org/TR/xmlschema-2/#dt-ccesN
\i
- це вихід для набору початкових символів імені XML і \c
є набором символів імені XML. [\i-[:]]
означає набір, що складається з множини, \i
виключаючи набір, що складається з символу двокрапки :
. Так в звичайній англійській мові це означало б "будь-який початковий символ, але ні :
". Весь регулярний вираз звучить як "Один початковий символ імені XML, але не двокрапка, за якою слідують нульові або більше символів імені XML, але не двокрапка".
Практичні обмеження NCName в тому , що він не може містити кілька символів символів , як :
, @
, $
, %
, &
, /
, +
, ,
, ;
, пробільні символи або різні дужка. Крім того, NCName не може починатися з числа, крапки або мінуса, хоча вони можуть з’являтися пізніше в NCName.
У XML-документах, що відповідають простору імен, усі імена повинні бути або кваліфікованими іменами, або NCNames. Наступні значення повинні бути іменами NCN (не кваліфікованими іменами):
Практично кажучи ...
Символи: -
, .
, 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