Saya menerapkan komentar penurunan harga di komentar xml dari file konfigurasi ketika XmlParser melaporkan bahwa dua tanda hubung ( --
) tidak diperbolehkan dalam komentar xml.
Memeriksa Spesifikasi XML , tampaknya komentar xml tidak dirancang untuk berisi dua tanda hubung untuk alasan kompatibilitas dengan pengurai SGML.
Mengapa pengurai SGML melarang tanda hubung ganda dalam komentar?
Jawaban:
Halaman ini menguraikan sedikit sejarah HTML / SGML, dan aturan yang agak berbelit-belit dari dua tanda hubung berurutan (tanda hubung ganda).
Bagian yang relevan tentang SGML:
sumber
--
di dalam komentar, kepala saya berputar pada kompleksitas yang akan diperkenalkan kemudian.--
komentar sepertinya baik bagi saya. Tetapi, adakah cara standar untuk menghindarinya? Misalkan saya ingin membuat (dan membagikan) filter keluaran untuk memastikanfoo -- bar
tidak pernah menyebabkan masalah. Apakah ada yang setara dengan SGMLfoo -\- bar
? (Aku yakin itu bukan backslash!) Atau-
(lihat jawaban ini ), atau yang lainnya? Jika kita hanya mengganti--
dengan-
atau- -
, melarikan diri tidak dapat dibalik.Karena tanda hubung ganda adalah pembatas komentar dalam SGML. The
<!
dimulai instruksi SGML, yang--
menunjukkan komentar. Jadi pada dasarnya itu karena alasan yang sama bahwa komentar C ++ tidak dapat berisi*/
.sumber
-->
pembatas komentar.<!
memulai instruksi SGML,>
mengakhirinya. Dalam instruksi SGML,--
keduanya memulai dan mengakhiri komentar.-->
sebenarnya adalah dua token,--
untuk membatasi komentar, dan>
untuk mengakhiri instruksi SGML. Sekarang, saya punya ide dari mana<![CDATA[
...]]>
berasal.