reglas - xml estructura y sintaxis
Utilizando-en nombre de elemento XML (3)
¿Está bien usar un hyphen
en un nombre de elemento XML?
p.ej
<rank-type>Rank</rank-type>
Como lo indican fácilmente Vinko y el hacker, la respuesta es
Sí, se permiten guiones en los nombres , ya sea para nombres de elementos o nombres de atributos. Sin embargo, un guión no puede ser el primer carácter del nombre .
El estándar W3C define los nombres de la siguiente manera (sección 2.3)
NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
Name ::= NameStartChar (NameChar)*
Al ignorar los diversos caracteres ASCII extendidos y los caracteres de doble byte (que comienzan con el signo # en la definición de sintaxis), un nombre debe comenzar con una letra mayúscula o minúscula (AZ), dos puntos (:) o un guión bajo. Los caracteres que siguen a este carácter de inicio, si lo hay, es decir, si el nombre no es un solo carácter, pueden ser cualquiera de los caracteres de inicio válidos y / o cualquiera de los dígitos (0-9), el famoso guión (-) y el punto (.)
Como se señala en las otras respuestas, cuando sea posible, es aconsejable evitar ciertos caracteres, aunque sean legales, para que no nos arriesguemos a encontrar dificultades específicas de implementación con varios analizadores y capas de interoperabilidad.
El propio W3C ha reivindicado implícitamente el uso de guiones, ya que estos se utilizan ampliamente en XSL, por ejemplo.
Eso no es un nombre de atributo, sino un nombre de elemento.
En cualquier caso, se admite tanto para los atributos como para los nombres de elementos en la especificación, siempre y cuando el nombre no comience con ella (<-foo> no es un nombre de elemento válido).
Sin embargo, algunos programas podrían ahogarse con él, así que ten cuidado. Si tiene que usar dicho software, intente encontrar un mejor software o hacer que sus desarrolladores admitan la especificación XML correctamente.
Recomendaciones de W3CSchools (polémica)
Hacer nombres descriptivos. Los nombres con un separador de guión bajo son agradables: <nombre_primero>, <nombre_nombre>.
Los nombres deben ser cortos y simples, como este: <book_title> no como este: <the_title_of_the_book>.
Evita los caracteres "-". Si nombras algo como "primer nombre", es posible que algunos programas piensen que quieres restar el nombre del primero.
Evitar "." caracteres. Si nombras algo "first.name", algunos programas pueden pensar que "name" es una propiedad del objeto "first".
Evita los caracteres ":". Los dos puntos están reservados para ser usados para algo llamado espacios de nombres (más adelante).
Los documentos XML a menudo tienen una base de datos correspondiente. Una buena práctica es utilizar las reglas de denominación de su base de datos para los elementos en los documentos XML.
Las letras que no están en inglés como éòá son perfectamente legales en XML, pero tenga cuidado con los problemas si su proveedor de software no los admite.
Sí lo es. Pero su ejemplo muestra el nombre del elemento, no el nombre del atributo. Lo cual también es válido.