significa que xml escaping character

que - ¿Qué caracteres necesito para escapar en documentos XML?



cdata xml soapui (9)

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


Abreviado desde: http://en.wikipedia.org/wiki/XML#Escaping

Hay cinco entidades predefinidas:

&lt; represents "<" &gt; represents ">" &amp; represents "&" &apos; represents '' &quot; represents "

"Todos los caracteres Unicode permitidos se pueden representar con una referencia numérica de caracteres". Por ejemplo:

&#20013;

La mayoría de los caracteres de control y otros rangos de Unicode se excluyen específicamente, lo que significa (creo) que no pueden ocurrir escapados o directos:

http://en.wikipedia.org/wiki/Valid_characters_in_XML


Además de los cinco caracteres comúnmente conocidos [<,>, &, ", ''], también escaparía el carácter de tabulación vertical (0x0B). Es UTF-8 válido, pero no XML 1.0 válido, e incluso muchas bibliotecas (incluyendo libxml2) lo pierda y salga silenciosamente XML inválido.


De acuerdo con las especificaciones del World Wide Web Consortium (w3C), hay 5 caracteres que no deben aparecer en su forma literal en un documento XML , excepto cuando se usan como delimitadores de marcado o dentro de un comentario, una instrucción de procesamiento o una sección de CDATA. . En todos los demás casos, estos caracteres deben reemplazarse utilizando la entidad correspondiente o la referencia numérica de acuerdo con la siguiente tabla:

Reemplazo de entidad XML Carácter original Reemplazo numérico XML
< & lt; & # 60;
> & gt; & # 62;
" & quot; & # 34;
& & amp; & # 38;
'' & apos; & # 39;

Tenga en cuenta que las entidades mencionadas anteriormente se pueden usar también en HTML, con la excepción de & apos; , que se introdujo con XHTML 1.0 y no se declara en HTML 4. Por este motivo, y para garantizar la compatibilidad retroactiva, la especificación XHTML recomienda el uso de & # 39; en lugar.


Depende del contexto. Para el contenido, es <y &, y]]> (aunque cadena de 3 en lugar de un solo carácter). Para los valores de atributo, es <y & y "y ''. Para CDATA, es]]>.


Los caracteres de escape son diferentes para las etiquetas y los atributos.

Para las etiquetas:

< &lt; > &gt; (only for compatibility, read below) & &amp;

Para los atributos:

" &quot; '' &apos;

http://www.w3.org/TR/2008/REC-xml-20081126/#syntax

El carácter "y" comercial (&) y el corchete de ángulo izquierdo (<) no deben aparecer en su forma literal, excepto cuando se usan como delimitadores de marcado, o dentro de un comentario, una instrucción de procesamiento o una sección CDATA. Si se necesitan en otro lugar, deben escaparse utilizando referencias numéricas de caracteres o las cadenas "& amp;" y "& lt;" respectivamente. El corchete de ángulo recto (>) puede representarse utilizando la cadena "& gt;", y debe, por compatibilidad, escaparse utilizando "& gt;" o una referencia de carácter cuando aparece en la cadena "]]>" en el contenido, cuando esa cadena no está marcando el final de una sección CDATA.

Para permitir que los valores de los atributos contengan comillas simples y dobles, el carácter de apóstrofe o comillas simples ('') puede representarse como "& apos;", y el carácter de comillas dobles (") como" & quot; ".


Quizás esto ayude

Lista de referencias de entidades de caracteres XML y HTML :

En los documentos SGML, HTML y XML, las construcciones lógicas conocidas como datos de caracteres 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 representarse mediante una serie de caracteres denominada referencia de carácter. de los cuales hay dos tipos: una referencia de carácter numérico y una referencia de entidad de carácter. Este artículo enumera las referencias de entidades de caracteres que son válidas en documentos HTML y XML.

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

quot " amp & apos '' lt < gt >


Si usa una clase o biblioteca apropiada, ellos harán el escape por usted. Muchos problemas de XML son causados ​​por la concatenación de cadenas.

Personajes de escape XML

Sólo hay cinco:

" &quot; '' &apos; < &lt; > &gt; & &amp;

Los personajes que escapan dependen de dónde se usa el carácter especial.

Los ejemplos se pueden validar en el Servicio de Validación de Marcado W3C .

Texto

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

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

Atributos

La forma segura es escapar de los cinco caracteres en los atributos, sin embargo, el carácter no debe escaparse en los atributos:

<?xml version="1.0"?> <valid attribute=">"/>

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

<?xml version="1.0"?> <valid attribute="''"/>

Del mismo modo, el " no debe escaparse en los atributos si las comillas son '' :

<?xml version="1.0"?> <valid attribute=''"''/>

Comentarios

Los 5 caracteres especiales no deben escaparse en los comentarios:

<?xml version="1.0"?> <valid> <!-- "''<>& --> </valid>

CDATA

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

<?xml version="1.0"?> <valid> <![CDATA["''<>&]]> </valid>

Instrucciones de procesamiento

Los 5 caracteres especiales no deben escaparse en las instrucciones de procesamiento XML:

<?xml version="1.0"?> <?process <"''&> ?> <valid/>

XML vs HTML

HTML tiene su propio conjunto de códigos de escape que cubren muchos más caracteres.



Respuesta nueva y simplificada a una pregunta antigua y común ...

Escape XML simplificado

  1. Siempre (90% importante para recordar)

    • Escape < como &lt; a menos que < esté comenzando una <tag/> .
    • Escape & as &amp; a menos que & esté comenzando una &entity; .
  2. Valores de atributo (9% importante para recordar)

    • attr=" '' attr=" simples '' están bien dentro de comillas dobles. "
    • attr='' " comillas dobles " están bien dentro de comillas simples. ''
    • Escape " como &quot; y '' como &apos; contrario.
  3. Comments , CDATA e instrucciones de procesamiento (0.9% importante para recordar)

    • <!-- Dentro de los Comments --> no se debe escapar nada, pero no se permiten cadenas.
    • <![CDATA[ Dentro de CDATA ]]> no se debe escapar nada, pero no ]]> se permiten cadenas.
    • <?PITarget Within <?PITarget ?> No se debe escapar nada, pero no ?> Se permiten cadenas.
  4. Esoterica (0,1% importante para recordar)

    • Escape ]]> as ]]&gt; a menos que ]]> está terminando una sección CDATA.
      (Esta regla se aplica a los datos de caracteres en general, incluso fuera de una sección CDATA).