significa - para que sirve<? xml version 1.0 encoding utf 8 ?>
Significado de-<? Xml version="1.0" encoding="utf-8"?> (6)
¿Puede alguien señalarme un libro o un sitio web que explica estos conceptos básicos con claridad?
Puede consultar este Tutorial de XML con ejemplos.
Pero, ¿qué pasa con la parte de codificación? ¿Por qué es eso necesario?
W3C proporciona una explanation sobre la codificación:
"El conjunto de caracteres del documento para XML y HTML 4.0 es Unicode (también conocido como ISO 10646). Esto significa que los navegadores HTML y los procesadores XML deben comportarse como si usaran Unicode internamente. Pero eso no significa que los documentos deben transmitirse en Unicode. Siempre que el cliente y el servidor acepten la codificación, pueden usar cualquier codificación que se pueda convertir a Unicode ... "
Soy nuevo en XML y estoy tratando de entender lo básico. Leí la línea a continuación en "Learning XML", pero todavía no estoy seguro. ¿Puede alguien señalarme un libro o un sitio web que explica 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 "parte de la versión xml": tanto el documento como el usuario del documento deberían "hablar" en la misma versión de XML. Pero, ¿qué pasa con la parte de codificación? ¿Por qué es eso necesario?
La declaración de codificación identifica qué codificación se usa para representar los caracteres en el documento.
Más sobre la Declaración XML aquí: http://msdn.microsoft.com/en-us/library/ms256048.aspx
Este es el preámbulo opcional de XML.
-
version="1.0"
significa que este es el estándar XML al que se ajusta este archivo -
encoding="utf-8"
significa que el archivo está codificado usando la codificación UTF-8 Unicode
La declaración XML en el mapa del documento consta de lo siguiente:
The version number, ?xml version="1.0"?.
Esto es obligatorio. Aunque el número podría cambiar para versiones futuras de XML, 1.0 es la versión actual.
La declaración de codificación
encoding="UTF-8"?
Esto es opcional Si se utiliza, la declaración de codificación debe aparecer inmediatamente después de la información de versión en la declaración XML, y debe contener un valor que represente una codificación de caracteres existente.
No se requiere una declaración XML en todos los documentos XML; no obstante, se recomienda encarecidamente a los autores de documentos XHTML que utilicen declaraciones XML en todos sus documentos. Dicha declaración es necesaria cuando la codificación de caracteres del documento es distinta de la UTF-8 o UTF-16 predeterminada y ninguna codificación fue determinada por un protocolo de nivel superior. Aquí hay un ejemplo de un documento XHTML. En este ejemplo, se incluye la declaración XML.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Virtual Library</title>
</head>
<body>
<p>Moved to <a href="http://example.org/">example.org</a>.</p>
</body>
</html>
Por favor, consulte los estándares W3 para XML .
Para comprender el atributo de "codificación", debe comprender la diferencia entre los bytes y los 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 que están disponibles se llama conjunto de caracteres .
Cada personaje 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 hay muchas codificaciones diferentes.
La mayoría de las codificaciones se basan en un conjunto de caracteres y codificación antiguos llamados ASCII, que es un byte único por carácter (en realidad, solo 7 bits) y contiene 128 caracteres, incluidos muchos de los caracteres comunes utilizados en inglés estadounidense.
Por ejemplo, aquí hay 6 caracteres en el juego de caracteres ASCII que están representados por los valores 60 a 65.
Extract of ASCII Table 60-65
╔══════╦══════════════╗
║ Byte ║ Character ║
╠══════╬══════════════║
║ 60 ║ < ║
║ 61 ║ = ║
║ 62 ║ > ║
║ 63 ║ ? ║
║ 64 ║ @ ║
║ 65 ║ A ║
╚══════╩══════════════╝
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 es suficiente para 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 a 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 personaje completamente diferente en otra codificación, o incluso podría ser inválida.
Por ejemplo, en ISO 8859-1 , â se representa por un byte de valor 226
, mientras que en UTF-8 son 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í mostrarlos o convertirlos 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 y símbolos alfabéticos básicos, en estos casos, la declaración en sí misma 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 atributo de version
especifica la versión XML, de las cuales hay dos en este momento (ver las versiones XML de Wikipedia . Hay ligeras diferencias entre las versiones, por lo que un analizador XML necesita saber con qué se trata. En la mayoría de los casos (para Inglés de todos modos), la versión 1.0 es suficiente.