El valor de
NMTOKEN
sigue las mismas reglas que el nombre XML, excepto que conNMTOKEN
, cualquiera de los caracteres permitidos puede ser el primer carácter. A diferencia del tipo XMLstring
, los valoresNMTOKEN
no pueden contener espacios en blanco. Todavía no veo su utilidad.¿Cuál es la utilidad de los tipos NMTOKEN y NMTOKENS?Entonces, ¿cuándo y por qué usaríamos el tipo
NMTOKEN
en lugar del tipostring
?NMTOKENS
nos permite especificar varios valoresNMTOKEN
(separados por espacios en blanco) en una sola cadena. Este tipo tiene aún menos sentido, ya que también permite que un valor contenga caracteres de espacios en blanco, lo que esencialmente significa que tanto el tipoNMTOKENS
como el tipostring
pueden contener exactamente los mismos valores.¿Cuándo es útil este tipo?
Respuesta
NMTOKEN
NMTOKENS
y existen en el esquema XML sólo por compatibilidad con las DTD, el predecesor de esquema XML, que tenía los atributos como tipos. DTD tiene algunos otros tipos por lo que no se destacan como redundantes allí.
Así que use NMTOKEN
y NMTOKENS
cuando esté convirtiendo una DTD a un Esquema XML.
Adición: Esos y otros tipos de gorras pertenecen a la misma categoría. Están marcados en la Rec del esquema XML con el texto "Para compatibilidad, NMTOKEN se debe usar solo en los atributos".
Si se ajustan exactamente a sus necesidades, puede ser que sea más fácil de usar solo ellos, sino la forma de esquema XML es derivar de xs:string
o xs:token
y restringir según sea necesario con una faceta pattern
. O, más comúnmente en mi experiencia, use xs:string
o xs:token
tal como está y llámalo lo suficientemente cerca.
NMTOKEN permite que XML procese o trate espacios en blanco como caracteres. Como los atributos no toman más que una palabra como valores, NMTOKEN nos permite escribir palabras en Nueva York, Nueva Zelanda o el Presidente Obama que tienen separadores de espacio en blanco.
No, eso no es lo que hace 'xs: NMTOKEN'. Los espacios en blanco iniciales y finales se eliminan (colapsan) y no se permite el espacio en blanco entre los caracteres. Como ya se señaló en la pregunta original, en realidad. – Abel
Creo que NMTOKEN es útil para definir valores, que respresentan valores de identificación compatibles con HTML5 o nombres de clase HTML. Contrariamente a las versiones HTML anteriores, HTML5 permite identificadores que comienzan con un dígito.
Los NMTOKENS son útiles para listas (separadas por comas) de identificadores HTML5 o clases de HTML.
- 1. ¿Cuál es la utilidad de `enable_shared_from_this`?
- 2. ¿Cuál es la importancia de los tipos MIME correctos?
- 3. ¿Cuál es la diferencia entre los tipos de datos y los literales en Java?
- 4. ¿Cuál es la utilidad del tipo de matriz?
- 5. ¿Cuál es la utilidad real de la marca y la hormiga?
- 6. ¿Cuál es la utilidad del atributo GeneratedCodeAttribute en C#?
- 7. ¿Cuál es la diferencia entre MySQL BOOL y los tipos de datos de columna BOOLEAN?
- 8. ¿Cuál es la utilidad de los bloques CHECK, UNITCHECK e INIT en Perl?
- 9. ¿Cuál es la diferencia entre los tipos de cadenas VARCHAR (255) y TINYTEXT en MySQL?
- 10. ¿Cuál es la diferencia entre los tipos de archivo .Resx y .Resources?
- 11. ¿Cuál es la diferencia entre los tipos de datos brutos largos y largos en Oracle?
- 12. ¿Cuál es la utilidad de los constructores públicos en clases abstractas en C#?
- 13. ¿Cuál es el propósito de los tipos anónimos?
- 14. Clase de utilidad: ¿Cuál es el enfoque correcto?
- 15. ¿Cuál es la relación entre los tipos sin caja y el rigor?
- 16. ¿Cuál es la diferencia entre los tipos Bool y Boolean en C#
- 17. ¿Cuál es la diferencia entre los datos-dojotype y dojoType?
- 18. ¿Cuál es la razón por la que no todos los tipos de valores son anulables?
- 19. Cuál es la diferencia entre los diferentes tipos de sesión de Magento
- 20. ¿Cuál es la diferencia entre los dos tipos de constructores de clase en PHP?
- 21. Cuál es la diferencia entre los tipos de grupo de aplicaciones IIS7
- 22. ¿Cuál es la "mejor" implementación canónica de Equals() para los tipos de referencia?
- 23. ¿Cuál es la forma correcta de agregar un módulo de utilidad a una distribución de CPAN?
- 24. ¿Cuál es la comparación más rápida (incorporada) para los tipos de cadena en C#
- 25. ¿Cuál es la "clase base" para los tipos de valores numéricos C#?
- 26. ¿Cuál es la diferencia entre numpy "tipo de identificadores" y "tipos" dentro de Cython?
- 27. ¿Cuál es la alternativa de los atributos?
- 28. ¿Cuál es la sintaxis VB.NET equivalente para los tipos anónimos en una instrucción LINQ?
- 29. ¿Cuál es la diferencia entre los tipos de proyectos "ASP.NET AJAX Server Control" y "ASP.NET Server Control"?
- 30. ¿Cuál es la diferencia entre los tipos de datos SQLite relacionados como INT, INTEGER, SMALLINT y TINYINT?
disculpa por no responder antes. Si NMTOKEN y NMTOKENS existen solo por compatibilidad con DTD, ¿qué tipos debería usar XML Schema en lugar de NMTOKEN y NMTOKENS cuando la compatibilidad DTD no es un problema? – flockofcode
He agregado la respuesta en función de tu comentario. – xan
muy apreciado – flockofcode