Solución:
NMTOKEN
y NMTOKENS
existen en XML Schema solo por compatibilidad con DTD, el predecesor de XML Schema, que los tenía como tipos de atributos. DTD tiene algunos otros tipos, por lo que esos no se destacan como redundantes allí.
Así que usa NMTOKEN
y NMTOKENS
al convertir una DTD en un esquema XML.
Anexo: Esos y otros tipos de mayúsculas pertenecen a la misma categoría. Están marcados en XML Schema Rec con el texto “Por compatibilidad, NMTOKEN debe usarse solo en atributos”.
Si se ajustan exactamente a sus necesidades, puede que sea más fácil utilizarlos, pero la forma del esquema XML es derivar de xs:string
o xs:token
y restringir según sea necesario con un pattern
faceta. O, más comúnmente en mi experiencia, use xs:string
o xs:token
tal cual y llámalo lo suficientemente cerca.