Soy nuevo en XML y estoy tratando de comprender los conceptos básicos. Leí la línea siguiente en "Aprendiendo XML", pero todavía no está claro para mí. ¿Alguien puede señalarme un libro o un sitio web que explique estos conceptos básicos con claridad?
De Learning XML :
La declaración XML describe algunas de las propiedades más generales del documento, indicando al procesador XML que necesita un analizador XML para interpretar este documento.
¿Qué significa esto?
Entiendo la xml version
parte: tanto el documento como el usuario del documento deben "hablar" en la misma versión de XML. Pero, ¿qué pasa con la encoding
parte? ¿Por qué es eso necesario?
Respuestas:
Para comprender el atributo "codificación", debe comprender la diferencia entre bytes y caracteres .
Piense en los bytes como números entre 0 y 255, mientras que los caracteres son cosas como "a", "1" y "Ä". El conjunto de todos los caracteres disponibles se denomina conjunto de caracteres .
Cada carácter tiene una secuencia de uno o más bytes que se utilizan para representarlo; sin embargo, el número exacto y el valor de los bytes depende de la codificación utilizada y existen muchas codificaciones diferentes.
La mayoría de las codificaciones se basan en un conjunto de caracteres antiguo y una codificación denominada ASCII, que es de un solo byte por carácter (en realidad, solo 7 bits) y contiene 128 caracteres, incluidos muchos de los caracteres comunes que se utilizan en el inglés estadounidense.
Por ejemplo, aquí hay 6 caracteres en el conjunto de caracteres ASCII que están representados por los valores de 60 a 65.
En el conjunto ASCII completo, el valor más bajo utilizado es cero y el más alto es 127 (ambos son caracteres de control ocultos).
Sin embargo, una vez que comienza a necesitar más caracteres de los que proporciona el ASCII básico (por ejemplo, letras con acentos, símbolos de moneda, símbolos gráficos, etc.), ASCII no es adecuado y necesita algo más extenso. Necesita más caracteres (un juego de caracteres diferente) y necesita una codificación diferente, ya que 128 caracteres no son suficientes para caber todos los caracteres. Algunas codificaciones ofrecen un byte (256 caracteres) o hasta seis bytes.
Con el tiempo, se han creado muchas codificaciones. En el mundo de Windows, existe CP1252, o ISO-8859-1, mientras que los usuarios de Linux tienden a favorecer UTF-8. Java usa UTF-16 de forma nativa.
Una secuencia de valores de bytes para un carácter en una codificación podría representar un carácter completamente diferente en otra codificación, o incluso podría no ser válida.
Por ejemplo, en la norma ISO 8859-1 , â está representado por un byte de valor
226
, mientras que en UTF-8 que es de dos bytes:195, 162
. Sin embargo, en ISO 8859-1 ,195, 162
serían dos caracteres, Ã, ¢ .Piense en XML no como una secuencia de caracteres sino como una secuencia de bytes.
Imagine que el sistema que recibe el XML ve los bytes
195, 162
. ¿Cómo sabe qué personajes son estos?Para que el sistema interprete esos bytes como caracteres reales (y así los muestre o los convierta a otra codificación), necesita conocer la codificación utilizada en el XML.
Dado que las codificaciones más comunes son compatibles con ASCII, en lo que respecta a los caracteres alfabéticos básicos y los símbolos, en estos casos, la declaración en sí puede salirse con la suya usando solo los caracteres ASCII para decir cuál es la codificación. En otros casos, el analizador debe intentar averiguar la codificación de la declaración. Como sabe que la declaración comienza con
<?xml
, es mucho más fácil hacer esto.Finalmente, el
version
atributo especifica la versión XML, de las cuales hay dos en este momento (ver versiones XML de Wikipedia . Hay ligeras diferencias entre las versiones, por lo que un analizador XML necesita saber de qué se trata. En la mayoría de los casos (para inglés altavoces de todos modos), la versión 1.0 es suficiente.fuente
No se requiere una declaración XML en todos los documentos XML; sin embargo, se recomienda encarecidamente a los autores de documentos XHTML que utilicen declaraciones XML en todos sus documentos. Se requiere una declaración de este tipo cuando la codificación de caracteres del documento es diferente a la predeterminada UTF-8 o UTF-16 y no se determinó ninguna codificación mediante un protocolo de nivel superior. A continuación se muestra un ejemplo de un documento XHTML. En este ejemplo, se incluye la declaración XML.
Consulte los estándares W3 para XML .
fuente
Este es el preámbulo opcional de XML .
version="1.0"
significa que este es el estándar XML que cumple este archivoencoding="utf-8"
significa que el archivo está codificado con la codificación Unicode UTF-8fuente
Más sobre la Declaración XML aquí: http://msdn.microsoft.com/en-us/library/ms256048.aspx
fuente
Puede consultar este tutorial XML con ejemplos.
W3C proporciona una explicación sobre la codificación:
fuente
La declaración XML en el mapa del documento consta de lo siguiente:
Esto es obligatorio. Aunque el número puede cambiar para futuras versiones de XML, 1.0 es la versión actual.
La declaración de codificación,
Esto es opcional. Si se utiliza, la declaración de codificación debe aparecer inmediatamente después de la información de la versión en la declaración XML y debe contener un valor que represente una codificación de caracteres existente.
fuente