Antworten:
NCName ist ein nicht kolonisierter Name, z. B. "Name". Im Vergleich zu QName, bei dem es sich um einen qualifizierten Namen handelt, z. B. "ns: name". Wenn Ihre Namen nicht durch unterschiedliche Namespaces qualifiziert werden sollen, handelt es sich um NCNames.
xs: string schränkt Ihre Namen überhaupt nicht ein, aber xs: NCName lässt grundsätzlich nicht zu, dass ":" in der Zeichenfolge angezeigt wird.
@skyl hat mich praktisch dazu gebracht, diese Antwort zu schreiben. Bitte beachten Sie die Redundanz.
NCNamesteht für "nicht kolonisierter Name". NCName kann als regulärer Ausdruck eines XML-Schemas definiert werden[\i-[:]][\c-[:]]*
\iund \csind Escapezeichen mit mehreren Zeichen, die in der XML-Schemadefinition definiert sind.
http://www.w3.org/TR/xmlschema-2/#dt-ccesN
\i ist das Escape für den Satz von anfänglichen XML-Namenszeichen und \cist der Satz von XML-Namenszeichen. [\i-[:]]bedeutet eine Menge, die aus der Menge besteht, mit \iAusnahme einer Menge, die aus dem Doppelpunkt besteht :. Im Klartext würde es also "jedes Anfangszeichen, aber nicht :" bedeuten . Der gesamte reguläre Ausdruck lautet "Ein anfängliches XML-Namenszeichen, aber kein Doppelpunkt, gefolgt von null oder mehr XML-Namenszeichen, aber kein Doppelpunkt."
Die praktischen Einschränkungen von NCName sind , dass es nicht mehrere Symbolzeichen wie enthalten kann :, @, $, %, &, /, +, ,, ;, Leerzeichen oder andere Klammer. Außerdem kann ein NCName nicht mit einer Zahl, einem Punkt oder einem Minuszeichen beginnen, obwohl sie später in einem NCName erscheinen können.
In Namespace-konformen XML-Dokumenten müssen alle Namen entweder qualifizierte Namen oder NCNames sein. Die folgenden Werte müssen NCNames sein (keine qualifizierten Namen):
Praktisch gesprochen...
Erlaubte Zeichen: - , ., 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
Auch -und .kann nicht als erstes Zeichen des Werts verwendet werden.
Nicht zulässige Zeichen: , !, ", #, $, %, &, ', (, ), *, +, ,, /, :, ;, <, =, >, ?, @, [, \, ], ^, `, {, |, },~
http://books.xmlschemata.org/relaxng/ch19-77215.html
Keine Leerzeichen oder Doppelpunkte. Ermöglicht "_" und "-".
Sie würden dies anstelle einer Zeichenfolge verwenden, damit Sie überprüfen können, ob der Wert auf das zulässige Maß beschränkt ist. Es passt gut zu bestimmten Konventionen für Namen / Bezeichner, wie zum Beispiel Djangos Konzept der "Schnecke".
Ich stimme der Person zu, die [\i-[:]][\c-[:]]*für uns ins Englische übersetzt.
[\i-[:]][\c-[:]]*ins Englische übersetzt wird. Gehen Sie voran und stimmen Sie ab, wie Sie versprochen haben;)
xs:NCName