[1] XML 宣言 (というか[[符号化宣言]]) って便利なんですよー。 [[NC]]4 って日本語の[[文字コード]]の判別が今ほど精度よくないんで、たまに[[シフトJIS]] と[[日本語EUC]] 間違っちゃうんです。でも、 NC4 にはもれなく XML 宣言 (や他の[[処理指令]]) をもれなく表示しちゃう機能がついてますから、それをみながら文字コードを手動で指定できますっ!
[2]
[PRE[
[INS[(略)]]
]PRE]
こういうのを見てどう思います?
出力したのは例の [[WWWブラウザ]]。
[3]
Q: XML 宣言って必須ですよね?
A: いいえ。 XML 宣言は必須ではありません。
;; XML 宣言必須説、あちこちで見かけるのですけど、お前は本当に仕様書読んだのかと問い詰めたいですよ。
;; あ、 [[XML 1.1]] をお使いであれば、必須です。
([[名無しさん]] [sage])
[4]
無料鯖とか広告のために内容を改竄する形の鯖のせいで XML 宣言が一番最初じゃなくなることがあるみたいです。
そういう鯖の利用者は XML 宣言つきにするべきではありませんね。むしろへんてこな XML 宣言はつけては'''ならない'''ですよね。
([[名無しさん]] [WEAK[2004-07-10 09:05:38 +00:00]])
[5]
[CODE(XMLa)@en[[[encoding]]]] [[擬似属性]]を[CODE(XMLa)@en[[[charset]]]]にしている人がいくらかいるみたいです。どうみても非[[整形式]]です。本当にありがとうございました。
;;
* テキスト宣言
[6] [[テキスト宣言]]はすべての[[外部解析対象実体]] ([[外部一般解析対象実体]]、[[外部引数実体]]、[[外部部分集合実体]])
の先頭に1つだけ指定することができます。
[7] [[空白]]や[[注釈]]も含め、[[テキスト宣言]]より前に何かがあってはいけません。 ([[BOM]] はあってもOKです。)
[8] [[XML]] [[文書]]は [[SGML]] [[文書]]である、という建前からすると、[[テキスト宣言]]は [[SGML]]
[[処理指令]]の一種として解釈されることになりますが、[[マーク付け宣言]]の中の[[引数実体参照]]が[[参照]]する[[外部引数実体]]に[[テキスト宣言]]が含まれていると、
[[マーク付け宣言]]の[[引数]]として[[処理指令]]が含まれることになって、好ましくないように思えます。
;; [9] [[外部実体]]については[[リテラル実体値]]ではなく[[置換文]]が[[SGML実体]]に相当すると解釈すれば [[SGML]]
的には[[テキスト宣言]]は対応するものが何もない (システム側に属する何かである) ということになりますが、
そういう任意の解釈を導入してしまうと何とでも言えてしまうのでちょっと・・・。
;; [10] [[属性値]]で使われる[[一般実体参照]]からは[[外部実体]]を[[参照]]してはいけないことになっているので、
この問題は生じません。