@skyl pratiquement qui m'ont incité à écrire cette réponse, donc merci de prendre en compte la redondance.
NCName
est synonyme de "non-colonisés nom". NCName peut être définie comme un Schéma XML expression régulière [\i-[:]][\c-[:]]*
...et ce n'est que la regex veux dire?
\i
et \c
sont multi-caractère échappe défini dans la définition de Schéma XML.
http://www.w3.org/TR/xmlschema-2/#dt-ccesN
\i
est la fuite de l'ensemble initial de caractères de nom XML et \c
est l'ensemble des caractères de nom XML. [\i-[:]]
signifie un jeu qui consiste en l'ensemble \i
à l'exclusion d'un ensemble qui se composent de la virgule :
. Donc, en clair, ça voudrait dire "le premier caractère, mais pas :
". L'ensemble de l'expression régulière se lit comme "Une première XML caractère du nom, mais pas les deux-points, suivi par zéro ou plusieurs caractères de nom XML, mais pas les deux-points."
Restrictions pratiques d'un NCName
La pratique des restrictions de NCName sont qu'il ne peut pas contenir plusieurs caractères de symbole comme :
, @
, $
, %
, &
, /
, +
, ,
, ;
, les espaces ou différents entre parenthèses. En outre, un NCName ne peut pas commencer par un nombre, le point ou le signe moins (même si elles peuvent apparaître plus tard dans un NCName.
Où sont NCNames nécessaire
Dans l'espace de noms XML conforme des documents de tous les noms doivent être qualifiée noms ou NCNames. Les valeurs suivantes doivent être NCNames (pas de noms qualifiés):
- préfixes d'espace de noms
- des valeurs représentant une ID
- des valeurs représentant un IDREF
- des valeurs représentant une NOTATION
- instruction de traitement des cibles
- les noms des entités