Estaba aplicando comentarios de descuento en los comentarios xml de un archivo de configuración cuando XmlParser informó que --
no se permiten dos guiones ( ) en los comentarios xml.
Al verificar la especificación XML , parece que el comentario xml no está diseñado para contener dos guiones por razones de compatibilidad con los analizadores SGML.
¿Por qué los analizadores SGML no permiten dobles guiones en los comentarios?
Respuestas:
Esta página describe bastante del historial de HTML / SGML y las reglas bastante complicadas de esos dos guiones consecutivos (guión doble).
La parte relevante sobre SGML:
fuente
--
dentro del comentario, mi cabeza da vueltas sobre la complejidad que introducirá más adelante.--
dentro de un comentario me parece bueno. Pero, ¿hay una forma estándar de escapar? Supongamos que quiero crear (y compartir) un filtro de salida para asegurar quefoo -- bar
nunca cause un problema. ¿Hay un equivalente SGML defoo -\- bar
? (¡Estoy seguro de que no es una barra invertida!) ¿O-
(vea esta respuesta ), o algo más? Si solo reemplazamos--
con-
o- -
, el escape no es reversible.Porque un guión doble es el delimitador de comentarios en SGML. El
<!
comienza una instrucción SGML, el--
indica un comentario. Entonces, básicamente es por la misma razón que un comentario de C ++ no puede contener*/
.fuente
-->
es el delimitador de comentarios.<!
comienza una instrucción SGML, la>
termina. Dentro de una instrucción SGML,--
ambos comienzan y finalizan un comentario.-->
en realidad son dos tokens,--
para delimitar comentarios y>
para finalizar la instrucción SGML. Ahora, tengo una idea de dónde<![CDATA[
... se]]>
originó.