Risposte:
NCName è un nome non colonizzato, ad esempio "nome". Rispetto a QName che è un nome completo, ad esempio "ns: name". Se i tuoi nomi non dovrebbero essere qualificati da spazi dei nomi diversi, allora sono NCNames.
xs: string non pone alcuna restrizione sui tuoi nomi, ma xs: NCName fondamentalmente non consente a ":" di apparire nella stringa.
@skyl mi ha praticamente provocato a scrivere questa risposta, quindi per favore fai attenzione alla ridondanza.
NCNamesta per "nome non colonizzato". NCName può essere definito come un'espressione regolare di XML Schema[\i-[:]][\c-[:]]*
\ie \csono escape multi-carattere definiti nella definizione dello schema XML.
http://www.w3.org/TR/xmlschema-2/#dt-ccesN
\i è l'escape per il set di caratteri del nome XML iniziale ed \cè il set di caratteri del nome XML. [\i-[:]]indica un insieme che consiste nell'insieme \iescludendo un insieme che consiste nel carattere dei due punti :. Quindi, in un inglese semplice, significherebbe "qualsiasi carattere iniziale, ma non :". L'intera espressione regolare si legge come "Un carattere di nome XML iniziale, ma non due punti, seguito da zero o più caratteri di nome XML, ma non due punti."
Le restrizioni pratiche di NCName sono che non può contenere diversi caratteri di simbolo, come :, @, $, %, &, /, +, ,, ;, spazi bianchi o caratteri diversi parentesi. Inoltre un NCName non può iniziare con un numero, un punto o un carattere meno sebbene possano apparire in seguito in un NCName.
Nei documenti XML conformi allo spazio dei nomi tutti i nomi devono essere nomi qualificati o NCNames. I seguenti valori devono essere NCNames (nomi non qualificati):
In pratica ...
I caratteri consentiti: - , ., 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
Inoltre, -e .non può essere utilizzato come primo carattere del valore.
Caratteri non consentiti: , !, ", #, $, %, &, ', (, ), *, +, ,, /, :, ;, <, =, >, ?, @, [, \, ], ^, `, {, |, },~
http://books.xmlschemata.org/relaxng/ch19-77215.html
Nessuno spazio o due punti. Consente "_" e "-".
Lo useresti al posto della stringa in modo da poter convalidare che il valore è limitato a ciò che è consentito. Si associa bene a certe convenzioni per nome / identificatore come il concetto di django di "lumaca", per esempio.
Do un voto positivo alla persona che [\i-[:]][\c-[:]]*traduce in inglese per noi.
[\i-[:]][\c-[:]]*in inglese. Vai avanti e vota, come hai promesso;)
xs:NCName