¿Qué caracteres debo escapar en los documentos XML?

¿Qué caracteres deben escaparse en los documentos XML, o dónde puedo encontrar esa lista?

Solución

Si utilizas una clase o librería apropiada, ellos harán el escape por ti. Muchos problemas de XML son causados por la concatenación de cadenas.

Caracteres de escape XML

Sólo hay cinco:

"   "
'   '
<   <
>   >
&   &

Los caracteres de escape dependen del lugar donde se utilice el carácter especial.

Los ejemplos pueden validarse en W3C Markup Validation Service.

Texto

La forma segura es escapar los cinco caracteres en el texto, sin embargo, los tres caracteres ", ' y > no necesitan ser escapados en el texto:

<?xml version="1.0"?>
"'>

Atributos

La forma segura es escapar los cinco caracteres en los atributos, sin embargo, el carácter > no necesita ser escapado en los atributos:

<?xml version="1.0"?>

El carácter ' no necesita ser escapado en los atributos si las comillas son ":

<?xml version="1.0"?>

Del mismo modo, el carácter " no necesita ser escapado en los atributos si las comillas son ':

<?xml version="1.0"?>

Comentarios

Los 5 caracteres especiales no deben escaparse en los comentarios:

<?xml version="1.0"?>


CDATA

Los 5 caracteres especiales no deben escaparse en las secciones CDATA:


<?xml version="1.0"?>
Comentarios (13)

Tal vez esto ayude:

Lista de referencias de entidades de carácter XML y HTML:

En los documentos SGML, HTML y XML, las construcciones lógicas conocidas como datos datos y valores de atributos consisten en secuencias de caracteres, en las que cada carácter puede manifestarse directamente (representándose a sí mismo), o puede ser representado por una serie de caracteres llamada referencia de caracteres, de la que hay dos tipos: una referencia numérica referencia de carácter y una referencia de entidad de carácter referencia de entidad. Este artículo enumera las referencias de entidad de carácter que son válidas en los documentos HTML y XML.

Ese artículo enumera las siguientes cinco entidades XML predefinidas:

quot  "
amp   &
apos  '
lt    <
gt    >
Comentarios (0)

además de los cinco caracteres comúnmente conocidos [, &, ", '] también escaparía el carácter de tabulación vertical (0x0B). Es válido en UTF-8, pero no es válido en XML 1.0, e incluso muchas bibliotecas (incluida libxml2) lo pasan por alto y producen silenciosamente un XML no válido.

Comentarios (0)