XMLメモ(参照: @it 「XMLを学ぼう」 (株)ピーデー 川俣さん)

  • HTMLは本来はSGMLのサブセットであるから、木構造になっているはずである。しかし、現実のWebブラウザは、木構造でないHTMLも解釈して表示してしまう。 XHTMLでは当然エラーになる。
  • DTDにおけるENTITYは4つの種類がある。
    • &を使用する内部実体とよばれる方法。これは、本文の置き換えを行う。
    • %を用いる方法で「パラメータ実体」という。宣言時に%を指定し、本文ではなくDTD宣言の置き換えを行う。繰り返しを防ぐという意味と、利用者のカスタマイズ範囲を限定するという使い方がある。
    • SYSTEMキーワードと参照先のファイル名を指定し、置き換えを行う方法で、外部解析対象実体(external parsed entity)という。参照されるファイルはXML文章ではない。単純に置き換えを行うものであるから、要素の開始タグと終了タグの間に記述できる内容に等しい。つまり、文字を書いてもよいし、要素を書いてもよいし、実体の参照を書いてもよいし、CDATA セクションを書いてもよいし、処理命令(PI)を書いてもよいし、もちろんコメントを書いてもよい。それらを幾つでも連ねて書くことができる。
    • 解析対象外実体というのがあるが、知らなくても構わないし、知っていても利用しない方がよい
  • クオーテーション(")記号の内側でも、<などのマークアップ用の記号を特別扱いしない。よって、逆にクオーテーション内部で実体参照が可能である
  • ユニコードの10進数のコード番号を指定して記述する場合は&#コード番号;とする
  • XPointerなど、外部からの情報参照を受けることを想定すると、id属性はすべての要素に付けておくべきである
  • 名前空間接頭辞の宣言は属性xmlnsで行う。この宣言は宣言が記述された要素の子ノードだけでなく、その要素自身にも及ぶ。だから、 xmlns:xhtml属性が記述された要素自身の名前がxhtml:htmlと記述される。
  • standalone="yes"であれば実体の内容が外部にある可能性はあるが、 その実体がどのような種類の実体であるかは判断できるだけの情報が必ず与えら れる、ということである。
  • XMLでは、書かれた空白文字、TAB文字、改行文字はすべてあるがままに認識される