Commentaires XML et “-“

 (nombre pair de -- s) semblent également non valides.  Si c'est une caractéristique historique, qu'est-ce que "pro" en fait?  ("contra" partie est l'incapacité d'avoir -- dans les commentaires). 

Quelle est la raison de compliquer le traitement des commentaires en ne faisant pas que '->' fin du commentaire et en autorisant '-' à l'intérieur?

A partir du document de normes:

http://www.w3.org/TR/REC-xml/#sec-comments

[Définition: les commentaires peuvent apparaître n’importe où dans un document en dehors des autres balises; en outre, ils peuvent apparaître dans la déclaration de type de document aux endroits autorisés par la grammaire. Ils ne font pas partie des données de caractère du document. un processeur XML peut, mais pas nécessairement, permettre à une application de récupérer le texte des commentaires. Pour des raisons de compatibilité , la chaîne “-” (double trait d’union) ne doit pas apparaître dans les commentaires.] Les références d’entité de paramètre ne doivent pas être reconnues dans les commentaires.

Peut-être que cela peut être utile pour quelqu’un. J’ai eu un problème, que je voulais commenter un paramètre de ligne de commande dans XML qui commence par -:

  

de manière si normale comme ça

  

n’a pas fonctionné, mais j’ai découvert que si le - est remplacé par son équivalent UTF-8 - cela fonctionne et peut être toléré dans les commentaires.

Donc dans mon cas la ficelle

  

est analysé correctement et peut faire partie des commentaires.

Bien sûr, ça a l’air un peu moche, mais si quelqu’un veut garder une chaîne avec – comme commentaire dans son XML – je pense que c’est toujours mieux que rien.

C’est une de ces règles stupides en XML car elle était en SGML et les gens ne voulaient pas casser la compatibilité. Pourquoi est-il dans SGML?

-- n’est pas autorisé pour la compatibilité avec SGML. A partir de SGML et HTML :

L’espace blanc n’est pas autorisé entre le délimiteur ouvert de déclaration de balisage (““). Une erreur courante consiste à inclure une chaîne de tirets (“—“) dans un commentaire. Les auteurs devraient éviter de mettre deux ou plusieurs tirets adjacents dans les commentaires.

Donc en SGML et > ouvrir et fermer les "déclarations de balisage" et -- ouvre et ferme les commentaires.