web-dev-qa-db-ja.com

XMLコメントに2つのハイフンを含めることができないのはなぜですか

XmlParserが2つのハイフン(--)はxmlコメントでは許可されないことを報告したとき、設定ファイルのxmlコメントにマークダウンコメントを適用していました。

XML仕様 を確認すると、SGMLパーサーとの互換性の理由から、XMLコメントは2つのハイフンを含むようには設計されていないようです。

SGMLパーサーがコメントでの二重ハイフンを許可しないのはなぜですか?

18
OnesimusUnbound

このページ は、HTML/SGMLの歴史のかなりの部分と、2つの連続するハイフン(2つのダッシュ)のかなり複雑な規則の概要を示しています。

SGMLに関連する部分:

簡単に言うと、コメントの最初と最後にある二重ダッシュは、コメントの最初と最後ではありません。二重ダッシュは、コメントに含めることが許可されている内容の変更を示します。最初の-はコメントを開始し、コメントを終了せずにコメントに>文字を含めることができることをブラウザに通知します。 2番目-コメントを終了しません。これは、>文字が検出された場合、コメントを終了する必要があることをブラウザに通知します。別の-が追加されると、>文字の許可に戻ります。

31

二重ハイフンisがSGMLのコメント区切り文字だからです。 <!はSGML命令を開始し、--はコメントを示します。したがって、C++のコメントに*/を含めることができないのは、基本的に同じ理由です。

14
Jörg W Mittag