HTML Validator の謎警告

XHTML 1.1 で書いた XHTML 文書を W3C の Validator でチェックしたところ、以下の警告が出てしまいました。


Mismatch between Public and System identifiers in the DOCTYPE declaration

This document uses an inconsistent DOCTYPE declaration. The Public Identifier -//W3C//DTD XHTML 1.1//EN declares the XHTML 1.1 document type, but the associated System Identifier ​http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd does not match this document type.

The recommended System Identifier for XHTML 1.1 is http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd.

The safest way to use a correct DOCTYPE declaration is to copy and paste one from the recommended list and avoid editing that part of your markup by hand.

要は 「システム識別子 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" は XHTML 1.1 に適合してませんよ、推奨されるシステム識別子は "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" ですよ」 ってことなんだけど、違いがわからないんです・・・。 どっちも一緒だよねぇ。

でも (コピペして) 実際書き直してみると警告が出なくなるという謎。 なにこれこわい。

実際の XHTML 文書のサンプル 【追記: 2009.08.11】

実際に W3C の Validator に通して警告される文書とされない文書のサンプルです。

テキストデータとしては DOCTYPE 宣言の見た目は全く一緒のはずなんですが・・・何故か片方だけ警告されます。 多分テキストデータとしては表示されない変なバイトが混ざってるんだろうなーとは思うのですが未検証。

原因 【追記: 2009.12.07】

はてブにて id:kits さんに 『システム識別子先頭の「"」と「http」の間に ZERO WIDTH SPACE (U+200B) が挿入されているため。』 と教えて頂きました。 ありがとうございますっ!

今回のコードは質問サイト OKWave の質問に書かれていたものなのですが、どうやら OKWave に投稿すると URL の前に ZERO WIDTH SPACE が付加されるみたいですねぇ。