La declaración de XML es una línea opcional (pero recomendada) que aparece al inicio de un archivo. Sirve para indicar:
standalone
).Ejemplo típico:
<?xml version="1.0" encoding="UTF-8"?>
1.0
(compatible en casi todos los sistemas).1.1
, pero su uso es poco común.<?xml version="1.0"?>
Define la codificación de caracteres usada en el documento. Esto indica cómo se representan letras, símbolos y caracteres especiales.
Los más usados son:
Ejemplo con ISO-8859-1:
<?xml version="1.0" encoding="ISO-8859-1"?>
Ejemplo con UTF-16:
<?xml version="1.0" encoding="UTF-16"?>
Si no se indica encoding
, por defecto se asume UTF-8.
Indica si el documento depende de un archivo externo (como un DTD) para validarse.
standalone="yes"
: el documento es independiente.standalone="no"
: el documento necesita un archivo externo.Ejemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Si no se define correctamente la codificación, el documento puede mostrar errores en caracteres especiales:
Ejemplo con UTF-8 (correcto):
<?xml version="1.0" encoding="UTF-8"?>
<mensaje>
Hola, señor García! 😀
</mensaje>
Ejemplo con ISO-8859-1 (se rompe con emoji):
<?xml version="1.0" encoding="ISO-8859-1"?>
<mensaje>
Hola, señor García! 😀
</mensaje>
Resultado: la letra ñ y los acentos funcionan, pero el emoji dará error porque ISO-8859-1 no lo soporta.
<?xml version="1.0" encoding="UTF-8"?>
<ciudades>
<ciudad>São Paulo</ciudad>
<ciudad>Múnchen</ciudad>
<ciudad>北京</ciudad>
<ciudad>東京</ciudad>
</ciudades>
UTF-8 permite representar caracteres latinos, chinos, japoneses y acentos sin problema.
<?xml version="1.0" encoding="ISO-8859-1"?>
<ciudades>
<ciudad>São Paulo</ciudad>
<ciudad>München</ciudad>
<ciudad>北京</ciudad> <!-- ERROR: no soportado -->
</ciudades>
ISO-8859-1 solo soporta caracteres occidentales, por eso falla con chino o japonés.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Ejemplo de documento XML con caracteres internacionales -->
<mensajes>
<mensaje id="1">Hola, señor García!</mensaje>
<mensaje id="2">Привет, мир</mensaje>
<mensaje id="3">こんにちは世界</mensaje>
<mensaje id="4">مرحبا بالعالم</mensaje>
</mensajes>
Gracias a UTF-8, este documento soporta español, ruso, japonés y árabe en el mismo archivo.
La declaración XML se coloca al inicio del archivo y define:
version="1.0"
)encoding="UTF-8"
)standalone="yes/no"
)UTF-8 es la codificación recomendada porque soporta todos los idiomas y símbolos. Una codificación incorrecta puede romper el archivo y generar errores en lectores XML.