2011-03-31 16 views
6

Estoy seguro de que hay una razón para esto, pero: ¿Por qué los operadores XPath distinguen entre mayúsculas y minúsculas?¿Por qué los operadores XPath distinguen entre mayúsculas y minúsculas?

Esto no se trata de resolver un problema de XPath (ya estamos trabajando en eso) - ¡Solo me gustaría saber por qué tengo que molestarme!

+0

Buena pregunta, +1. Vea mi respuesta para la explicación más breve. :) –

Respuesta

8

Creo que la mayoría de los idiomas modernos distinguen mayúsculas de minúsculas. Claramente, tenía sentido que XPath siguiera XML. Una razón para que XML sea sensible a mayúsculas y minúsculas es que el plegado de mayúsculas y minúsculas puede ser un asunto bastante complejo cuando se extiende más allá del alfabeto inglés: por ejemplo, la mayúscula de ß es SS pero la minúscula de SS es ss. Entonces, ¿Straße y Strasse tienen el mismo nombre de elemento?

+1

+1 Excelente respuesta. XML que admite UNICODE y el análisis más simple conducen a mayúsculas y minúsculas. –

1

Well XML distingue entre mayúsculas y minúsculas (es decir, 'foo', 'FOO', 'Foo' son nombres diferentes en XML), de esta forma, cualquier lenguaje destinado a seleccionar nodos en un documento XML debe distinguir el caso, en menos para aquellas partes del lenguaje que tratan con la selección de nodos por su nombre.

Si realmente está preguntando por los operadores como por ejemplo los operadores lógicos and y or entonces yo creo que es sólo la consistencia con estar entre mayúsculas y minúsculas, y de esa manera XML algunas partes de XPath ser necesariamente entre mayúsculas y minúsculas. Pero esa es mi suposición, no conozco detalles sobre el proceso de diseño de XPath. http://www.w3.org/TR/xpath/ enumera las direcciones de correo electrónico de los editores e incluso puede haber archivos públicos de las listas de correo electrónico del W3C que documentan el proceso de diseño que puede buscar.

2

XPath distingue entre mayúsculas y minúsculas porque XML distingue entre mayúsculas y minúsculas.

Por lo tanto,

/AAA 

no es el mismo que:

/aaa 

En cuanto a los operadores , en XPath 1.0 mayoría de los operadores están compuestos enteramente de caracteres no alfabeto.

Finalmente, los operadores or, and y div y los operadores XPath 2.0 que se componen de letras - tales como union, intersect, except. La razón aquí para la sensibilidad de estos casos es la misma que para la mayoría de los lenguajes de programación modernos (excluyendo VB y SQL).

Cuestiones relacionadas