¿Cuáles son los caracteres especiales HTML y XML?

¿Cuáles son las entidades de caracteres especiales reservadas en HTML y en XML?

La información que tengo dice:

HTML:

& (reemplazar con&amp;)< (reemplazar con&lt;)> (reemplazar con&gt;)" (reemplazar con&quot;)' (reemplazar con&apos;)

XML:

< (reemplazar con&lt;)> (reemplazar con&gt;)& (reemplazar con&amp;)' (reemplazar con&apos;)" (reemplazar con&quot;)

Pero no puedo encontrar documentación sobre ninguno de estos.

El W3C menciona, en Lenguaje de marcado extensible (XML) 1.0 (quinta edición), ciertas referencias de entidades predefinidas. Pero dice que estas entidades están predefinidas (de la misma manera que&copy; está predefinido); no es que deban escapar:

4.6 Entidades predefinidas

[Definición: Las referencias de entidades y caracteres se pueden usar paraescapa el ángulo izquierdo, el ampersand y otros delimitadores. Para este propósito se especifica un conjunto de entidades generales (amp, lt, gt, apos, quot). También se pueden usar referencias numéricas de caracteres; se expanden inmediatamente cuando se reconocen y deben tratarse como datos de caracteres, por lo que las referencias de caracteres numéricos "& # 60;" y "& # 38;" se pueden usar para escapar <y & cuando ocurren en datos de caracteres.]

Qué personajesdeb se escapó a referencias de entidad en HTML?
Qué personajesdeb se escapó a referencias de entidad en XML?

Actualiza:

Desde Lenguaje de marcado extensible (XML) 1.0 (quinta edición):

2.4 Datos de caracteres y marcado

El personaje del signo comercial &) y el soporte angular izquierdo <) no deb aparecen 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,deb se puede escapar utilizando referencias de caracteres numéricos o las cadenas "&amp; "y"&lt; "respectivamente.

El soporte angular derecho >) puede representarse utilizando la cadena "&gt; "ydeb, por compatibilidad, se debe escapar usando "&gt; "o una referencia de caracteres cuando aparece en la cadena"]]> "en contenido, cuando esa cadena no marca el final de una sección CDATA.

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

i leí el primero diciendo que

debe se:

< (&lt;) debe se& (&amp;) debe se

may, perodeb cuando aparece como]]>

> (&gt;) debe ser, si aparece como]]>

Y eso' y" no tiene que escapar en absoluto; a menos que desee tener comillas dentro de los atributos entre comillas.

DesdeHTML 4.01 Especificación, Representación de documentos HTML:

5.3.2 Referencias de entidades de caracteres

Autores que deseen poner el "< "el carácter en el texto debe usar"&lt; "(ASCII decimal 60) para evitar posibles confusiones con el comienzo de una etiqueta (delimitador de inicio de etiqueta abierta).

e manera similar, los autores deben usar "&gt; "(ASCII decimal 62) en el texto en lugar de"> "para evitar problemas con agentes de usuario más antiguos que perciben incorrectamente esto como el final de una etiqueta (delimitador de cierre de etiqueta) cuando aparece en los valores de atributo citado

Los autores deben usar "&amp; "(ASCII decimal 38) en lugar de"& "para evitar confusiones con el comienzo de una referencia de caracteres (delimitador abierto de referencia de entidad). Los autores también deben usar"&amp; "en valores de atributo ya que las referencias de caracteres están permitidas dentro de los valores de atributo CDATA.

Algunos autores usan la referencia de entidad de caracteres "&quot; "para codificar instancias de comillas dobles ") ya que ese carácter puede usarse para delimitar los valores de los atributos.

HTML tiene muchas más dudas sobre las reglas, pero parece que yodeberí:

< debería estar con&lt;> debería estar con&gt;& debería estar con&amp;" debería estar con&quot;

y si" puede ser una referencia de entidad, también debería reemplazar' con&amp;.

Update Two

Desde HTML5: vocabulario y API asociadas para HTML y XHTML:

8.3 Serializar fragmentos HTML

Escapar una cadena (para los fines del algoritmo anterior) consiste en ejecutar los siguientes pasos:

Reemplazar cualquier aparición de "& "carácter por la cadena"&amp; ".

Reemplace cualquier aparición del carácter U + 00A0 NO-BREAK SPACE por la cadena "&nbsp; ".

Si se invocó el algoritmo en el modo de atributo, reemplace cualquier aparición de "" "carácter por la cadena"&quot; ".

Si el algoritmo no se invocó en el modo de atributo, reemplace cualquier aparición de "< "carácter por la cadena"&lt; ", y cualquier aparición de"> "carácter por la cadena"&gt; ".

¿Qué leo como HTML:

& por&amp; siempr  por&nbsp; siempr" por&quot; si está dentro de un atributo< por&lt; si esn en un atributo (es decir, los atributos pueden contener<)> por&gt; si esn en un atributo (es decir, los atributos pueden contener>)

Respuestas a la pregunta(1)

Su respuesta a la pregunta