2011-04-27 44 views
16
  1. El valor de NMTOKEN sigue las mismas reglas que el nombre XML, excepto que con NMTOKEN, cualquiera de los caracteres permitidos puede ser el primer carácter. A diferencia del tipo XML string, los valores NMTOKEN 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 tipo string?

  2. NMTOKENS nos permite especificar varios valores NMTOKEN (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 tipo NMTOKENS como el tipo string pueden contener exactamente los mismos valores.

    ¿Cuándo es útil este tipo?

Respuesta

17

NMTOKENNMTOKENS 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.

+1

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

+3

He agregado la respuesta en función de tu comentario. – xan

+0

muy apreciado – flockofcode

-2

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.

+4

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

0

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.

Cuestiones relacionadas