La palabra oficial es que la restricción impuesta a las convenciones de nomenclatura Xml se hereda del SGML principal de Xml, con una sola excepción: en Xml, como una opción adicional, los nombres pueden comenzar con un carácter de subrayado '_'.
SGML fue desarrollado por IBM en la década de 1960, por un grupo de mentes que pensaban en el estilo de los años sesenta. Como resultado, la tormenta de ideas que condujo a la creación de SGML probablemente se haya distraído por la idea abrumadora de que las naves espaciales, los viajes en el tiempo y los fusiles fabricados con papel de aluminio para protegerse contra 'ellos extraterrestres' y sus intentos tontos de provocación de pensamiento y control mental fueron procesos de pensamiento justificados.
So. La pregunta aún permanece. ¿Por qué SGML no permite números? Además, ¿por qué habría algún tipo de restricción impuesta sobre el uso de cualquier carácter que no sean los caracteres de control? <,>, & y espacio vacío? Sería una locura, seguramente, presentarle al geek de la computadora tantas claves para tantos personajes diferentes, solo para evitar que él o ella las use.
La razón más importante es el analizador sintáctico de la década de 1960, y sigue la regla de la complejidad hasta cierto grado de pedantería abierta.
'Cuanto más simple sea el analizador es, más rápido se realizará'
El alfabeto es el 26 de capital + 26 caracteres uncapital grande en total, y eso es 52. Los números de Permitir es un adicional de diez dígitos, que es aproximadamente una ¡sexto más!
En términos humanos, esto sería como tener que lavar seis ollas horriblemente incrustadas de suciedad, cada una tardando una hora en limpiarse, y luego escondidas debajo de la última olla es una olla de bonificación extra para lavar, y debes lavarla ! Tienes que repetir esta rutina todos los días por el resto de tu vida, y eso es exactamente lo que te gusta. ¡Precisamente!
Los documentos de lenguaje de marcado tienen una tendencia a aumentar el contenido. Por lo tanto, menos trabajos para el analizador, significan un aumento directo en la velocidad de rendimiento. Los beneficios luego se filtran a través de los rangos hasta que se metamorfosean en puro rendimiento lucrativo.
En los 'Viejos días de caballo, carro y un Commodore 64' era mucho más responsabilidad del usuario contar sus bits y bytes manualmente, para que los kilobytes se solucionaran solos. Sin embargo, como la CPU moderna es más capaz de hacer frente a su antiguo predecesor, las restricciones impuestas por el analizador se han vuelto más importantes que los problemas de rendimiento.
Si te sirve de consuelo, si tuviera que diseñar un lenguaje Mark-up yo mismo (que por razones de argumento, llamaremos a NAM-LIT-MAML, porque el impresionante lenguaje de marcación de Nicholas es el margen de beneficio más impresionante idioma (¡siempre!), entonces le permitiría usar cualquier número de todos los personajes de la historia completa del mundo, y de hecho el universo, sin excepción, y trabajaría muy duro para crear algunos caracteres nunca antes utilizados para el uso propio del lenguaje, que aún podría utilizarse dentro del documento mediante el uso de su propio carácter de escape que no se parece en nada a ningún otro personaje que alguna vez haya sido utilizado alguna vez.
Las restricciones impuestas por Xml se heredan de SGML y todos podemos estar de acuerdo en que en este día y edad de los naves espaciales de la nave espacial y otros mamíferos robóticos útiles, son innecesarios, estúpidos e ir contra la corriente de la programación orientada a objetos.
lecturas adicionales al http://www.w3.org/TR/REC-xml/
Aunque la forma más simple que he encontrado para hacer compatible un nombre XML es incluir el sufijo '_', no existe un estándar y, como tales otros métodos están en uso.
En su ejemplo, el primer carácter se ha convertido en un valor hexadecimal. Este valor hexadecimal representa el carácter '6' en ASCII, Unicode e indudablemente otros.
Lo bueno de usar valores hexadecimales es que todos los caracteres en un conjunto de códigos, p. Unicode puede estar representado.
Lo malo es que no son legibles de un vistazo.
"In the 'Ye olde days" - la "Y" en "Ye" no es una "Y", es una antigua letra inglesa para "Th" que simplemente parecía una "Y" distorsionada de la misma manera que el alemán tiene una letra especial que es más o menos para "ss", pero se parece más a una "B" distorsionada. Entonces dijiste "En los 'viejos tiempos'. Claramente puedo forzar que esto sea relevante, muestra que no debes permitir demasiadas letras o te da caos y confusión. De hecho, SGML lo entendió mal: solo necesita una letra para definir un número infinito de nombres de la forma más clara y sencilla posible, y esa letra obviamente debe ser la "O" mayúscula. – Steve314
Caracteres en cuestión: espina (þ) y Eszett (ß). – jdmichal
Todo esto es entretenido, pero me alegro de que diseñen XML con esa "limitación". Sin duda, hace que la integración con otros lenguajes de programación del mundo real (a diferencia de scifi) sea mucho más fácil. Porque de lo contrario, habría muchas personas que pensaron que era una buena idea comenzar su etiqueta con un número y no les importaba quién tenía que consumirla. – jep