Ich habe Abschriftenkommentare in den XML-Kommentaren einer Konfigurationsdatei angewendet, als der XmlParser meldete, dass --
in XML-Kommentaren zwei Bindestriche ( ) nicht zulässig sind.
Wenn Sie die XML-Spezifikation überprüfen , scheint der XML-Kommentar aus Kompatibilitätsgründen mit SGML-Parsern keine zwei Bindestriche zu enthalten.
Warum lassen SGML-Parser doppelte Bindestriche in Kommentaren nicht zu?
Antworten:
Diese Seite umreißt einiges aus der HTML / SGML-Geschichte und den ziemlich verworrenen Regeln dieser beiden aufeinander folgenden Bindestriche (doppelter Bindestrich).
Der relevante Teil über SGML:
quelle
--
im Kommentar vorgesehen sind, dreht sich mein Kopf um die Komplexität, die später eingeführt wird.--
in einem Kommentar zu verwenden, scheint mir gut zu sein. Aber gibt es eine Standardmethode, um dem zu entkommen? Angenommen, ich möchte einen Ausgabefilter erstellen (und freigeben), um sicherzustellen, dass erfoo -- bar
niemals ein Problem verursacht. Gibt es ein SGML-Äquivalent vonfoo -\- bar
? (Ich bin sicher, es ist kein Backslash!) Oder-
(siehe diese Antwort ) oder etwas anderes? Wenn wir nur--
mit-
oder ersetzen- -
, ist die Flucht nicht umkehrbar.Da ein Doppel Bindestrich ist die Kommentartrennzeichen in SGML. Das
<!
startet eine SGML-Anweisung, das--
zeigt einen Kommentar an. Aus dem gleichen Grund kann ein C ++ - Kommentar im Grunde genommen keinen enthalten*/
.quelle
-->
ist der Kommentarbegrenzer.<!
Startet einen SGML-Befehl und>
beendet ihn. Innerhalb einer SGML-Anweisung wird--
ein Kommentar sowohl gestartet als auch beendet.-->
besteht eigentlich aus zwei Token, die--
den Kommentar abgrenzen und>
den SGML-Befehl beenden. Jetzt habe ich eine Idee, wo<![CDATA[
...]]>
entstanden ist.