web-dev-qa-db-fra.com

Pourquoi un commentaire XML ne peut-il pas contenir deux traits d'union?

J'appliquais des commentaires de Markdown dans les commentaires XML d'un fichier de configuration lorsque le XMLPARSER a signalé que deux traits d'union (--) ne sont pas autorisés dans les commentaires XML.

Vérification du Spécification XML , il apparaît que le commentaire XML n'est pas conçu pour contenir deux traits d'union pour des raisons de compatibilité avec des analyseurs SGML.

Pourquoi les analyseurs SGML interdisent-ils les deux traits d'union dans des commentaires?

18
OnesimusUnbound

Cette page décrit un peu d'historique HTML/SGML et les règles plutôt convoluées de ces deux traits d'union consécutifs (Double Dash).

La partie pertinente sur SGML:

Pour le mettre simplement, le double tiret au début et à la fin du commentaire ne commencez pas et ne terminez pas le commentaire. Double Dash indique une modification de ce que le commentaire est autorisé à contenir. Le premier - démarre le commentaire et indique au navigateur que le commentaire est autorisé à contenir> caractères sans mettre fin au commentaire. La seconde - ne termine pas le commentaire. Il indique au navigateur que si elle rencontre un caractère>, il doit alors mettre fin au commentaire. Si un autre - est ajouté, alors il remonte à l'autorisation des> caractères.

31
Joris Timmermans

Parce qu'un double trait d'union est le commentaire Délimiteur dans SGML. Les <! Démarre une instruction SGML, la -- indique un commentaire. Donc, fondamentalement, c'est pour la même raison qu'un commentaire C++ ne peut pas contenir */.

14
Jörg W Mittag