Jawaban:
NCName adalah nama yang tidak dijajah, misalnya "nama". Dibandingkan dengan QName yang memiliki nama kualifikasi misalnya "ns: name". Jika nama Anda tidak seharusnya memenuhi syarat oleh ruang nama yang berbeda, maka mereka adalah NCNames.
xs: string sama sekali tidak membatasi nama Anda, tetapi xs: NCName pada dasarnya melarang ":" muncul dalam string.
@skyl secara praktis memprovokasi saya untuk menulis jawaban ini jadi mohon perhatian redundansi.
NCName
singkatan dari "nama yang tidak dijajah". NCName dapat didefinisikan sebagai ekspresi reguler Skema XML[\i-[:]][\c-[:]]*
\i
dan \c
pelarian multi-karakter yang ditentukan dalam definisi Skema XML.
http://www.w3.org/TR/xmlschema-2/#dt-ccesN
\i
adalah pelarian untuk kumpulan karakter nama XML awal dan \c
merupakan kumpulan karakter nama XML. [\i-[:]]
Berarti himpunan yang terdiri dari himpunan \i
tidak termasuk himpunan yang terdiri dari karakter titik dua :
. Jadi dalam bahasa Inggris sederhana itu berarti "karakter awal apa pun, tetapi tidak :
". Seluruh ekspresi reguler terbaca sebagai "Satu karakter nama awal XML, tetapi bukan titik dua, diikuti oleh nol atau beberapa karakter nama XML, tetapi bukan titik dua".
Pembatasan praktis NCName adalah bahwa hal itu tidak dapat berisi beberapa karakter simbol seperti :
, @
, $
, %
, &
, /
, +
, ,
, ;
, spasi karakter atau kurung yang berbeda. Selain itu, NCName tidak dapat dimulai dengan angka, titik, atau karakter minus meskipun bisa muncul nanti dalam NCName.
Dalam dokumen XML yang sesuai dengan namespace, semua nama harus nama yang memenuhi syarat atau NCNames. Nilai berikut harus NCNames (bukan nama yang memenuhi syarat):
Secara praktis ...
Karakter yang diizinkan: -
, .
, 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
Juga, -
dan .
tidak dapat digunakan sebagai karakter pertama dari nilai.
Karakter dianulir: ,
!
, "
, #
, $
, %
, &
, '
, (
, )
, *
, +
, ,
, /
, :
, ;
, <
, =
, >
, ?
, @
, [
, \
, ]
, ^
, `
, {
, |
, }
,~
http://books.xmlschemata.org/relaxng/ch19-77215.html
Tidak ada spasi atau titik dua. Mengizinkan "_" dan "-".
Anda akan menggunakan ini sebagai pengganti string sehingga Anda dapat memvalidasi bahwa nilainya terbatas pada apa yang diizinkan. Ia memetakan dengan baik ke konvensi tertentu untuk nama / pengenal seperti konsep django tentang "slug", misalnya.
Saya memberi suara positif pada orang yang [\i-[:]][\c-[:]]*
menerjemahkan ke dalam bahasa Inggris untuk kami.
[\i-[:]][\c-[:]]*
ke dalam bahasa Inggris. Silakan dan upvote, seperti yang Anda janjikan;)
xs:NCName