2009-05-28 13 views
7

Tengo lo que probablemente sea una pregunta de studid realmente simple, pero no puedo encontrar una respuesta en ninguna parte y necesito estar bastante seguro de esto.¿La etiqueta de declaración XML es sensible a mayúsculas y minúsculas?

Tengo varios archivos XML de varios proveedores. Uno de los proveedores me proporciona un archivo XML con caracteres japoneses en el archivo. Originalmente, tenía problemas para procesar el archivo XML (estoy usando el MSXML SDK). Los personajes saldrían mal. Descubrí que si lo siguiente se agregaba al archivo XML todo funcionaba bien.

<?xml version="1.0" encoding="UTF-16"?> 

Y entonces le pedí al vendedor que agregara esto a su archivo. Pero añadieron que con la codificación en minúsculas:

<?xml version="1.0" encoding="utf-16"?> 

Y cuando la carga este nuevo archivo, con esta declaración, estoy recibiendo el mismo problema que cuando esta declaración no estaba allí.

Lo que estoy tratando de averiguar (con certeza) es si ese atributo de codificación es sensible a las mayúsculas y minúsculas (o si no es el problema). ¿Importa que pongan "utf-16" versus "UTF-16"?

Actualización: Bajo el consejo de estos que publicaron las respuestas aquí, configuro y ejecuté una prueba. Un archivo tenía la minúscula utf-16 y la otra mayúscula. Aparte de eso, los archivos eran idénticos. Esto no solucionó el problema y no es el problema. Mi conclusión es que MSXML no distingue entre mayúsculas y minúsculas, como indica la especificación publicada en las respuestas.

+0

obviamente si el problema desaparece con una versión y no con la otra, entonces sí importa ... – workmad3

Respuesta

10

supongo que la pregunta no es realmente "es el standrard entre mayúsculas y minúsculas?" pero "¿es la codificación sensible a mayúsculas y minúsculas en MSXML SDK?"

De bytes.com:

La especificación XML dice que los procesadores "debería" ser nombres partido de codificación mayúsculas y minúsculas. "DEBERÍA" es un término técnico, menos fuerte que "DEBE", pero no veo ninguna razón por la que un procesador no lo haga.

Sin embargo, sabemos que esto puede no ser siempre cierto en la práctica. Si puede probar ambos lado a lado, hágalo y díganos cuál es el resultado.

+0

Puedo y quiero. Solo requiere un gran esfuerzo configurarlo. Esperaba tener conocimiento detallado de MSXML ... –

+0

He publicado una actualización arriba. Gracias. –

8

Desde el XML specs:

XML processors SHOULD match character encoding names in a case-insensitive way 

Así que no es necesario, pero recommened ser entre mayúsculas y minúsculas, de acuerdo con RFC 2119:

  1. DEBE Esta palabra, o el adjetivo "RECOMENDADO", significa que pueden existir razones válidas en circunstancias particulares para ignorar un artículo en particular
    , pero el total deLas implicacionesdeben ser entendidas y
    cuidadosamente pesadas antes de elegir un curso diferente .
+0

Aunque las respuestas de JoshJordan y tú son más o menos las mismas, voy a darle la 'respuesta' porque señaló que puede no ser cierto en la práctica y que deberíamos probar uno al lado del otro. Pero, sí me conviene dejar una respuesta adecuada y voy a hacer +1 por eso. Una vez más, gracias. –

Cuestiones relacionadas