XML を勉強してみた vol.02
- 投稿日:2010年4月 6日 23:05
- カテゴリ:スクリプト関連
こんにちは、月に1度はラーメンを食べ過ぎて苦しい思いをするHitoyamです。
さて、XMLのお勉強メモ第2弾。今回はシンプルなXMLの別の書き方について。
実際に自分で書いてみる
実際のファイル
ソースの中身
<?xml version="1.0" encoding="UTF-8" ?>
<books>
<book isbn="ISBN4-1020-5701-3" name="ナイン・ストーリーズ" author="J.D.サリンジャー"
category="英米文学" price="460" publish="新潮文庫" pDate="1986-01" />
<book isbn="ISBN4-1021-1401-7" name="異邦人" author="アルベール・カミュ"
category="フランス文学" price="420" publish="新潮文庫" pDate="1954-09" />
<book isbn="ISBN4-1675-0203-8" name="レキシントンの幽霊" author="村上春樹"
category="日本文学" price="480" publish="文藝春秋" pDate="1999-10" />
<!-- Last Update : 2010/04/01 by Hitoyam -->
</books>
前回のメモの時に書いたbooks01-1.xmlでは書籍の情報を<book>要素配下に子要素として書いていて、今回のbooks01-2.xmlでは<book>要素の属性として書いています。
ブラウザ表示のキャプチャ
Firefox、IE8で見るとSafari、前回と似たようなツリー表示ですが、Safariで見ると白紙状態...あれあれ?
Chromeでも同じく白紙状態だったので、webkit的なものたちは表示されないっぽい。これって正しい挙動? よくわかりませんが、とりあえずスルーして進むことにします...。
今回のポイント
要素主体のXML
- 長所 : 配下に子要素を持たせることができるため、データをより細かく分割する場合の対応が柔軟
- 短所 : 冗長でデータ量が多くなる
属性主体のXML
- 長所 : データ量が少量に抑えられ、コンパクトな記述が可能
- 短所 : データの統合・分割などの構造変化に弱い
予約語は使用できない
| 予約語 | 概要 |
|---|---|
| #FIXED | 属性は固定値である |
| #IMPLIED | 属性は任意である |
| #PCDATA | 文字データ |
| #REQUIRED | 属性値は必須である |
| ANY | 任意の要素を認める |
| ATTLIST | 属性リスト宣言 |
| CDATA | CDATAセクション |
| DOCTYPE | 文書型宣言 |
| ELEMENT | 要素型宣言 |
| EMPTY | 空要素 |
| encoding | 使用している文字エンコーディング |
| ENTITY | 実体宣言 |
| EITITIES | 実体宣言の集合 |
| ID | ユニークな識別子 |
| IDREF | 識別子への参照 |
| IDREFS | 識別子参照の集合 |
| IGNORE | 無視指定(条件セクション) |
| INCLUDE | 処理指定(条件セクション) |
| NDATA | データ記法宣言 |
| NMTOKEN | 名前トークン |
| NMTOKENS | 名前トークンの集合 |
| NOTATION | 記法宣言 |
| PUBLIC | 公開識別子 |
| standalone | 外部のDTDを参照しなければならないか |
| SYSTEM | システム識別子 |
| version | XMLのバージョン |
| xml | XMLのバージョン |
| xml:lang | 使用している言語 |
| xml:space | 空白文字の処理方法 |
※SGMLから引き継がれた文字は大文字で、それ以外は小文字
雑感
予約語の中には自分的にうっかり使ってしまいそうなものが含まれているので、最初に気を付けなくちゃ。
属性主体のXMLを書くシチュエーションって、具体的にどんな時なのでしょうか。実際に使用したことがないので、あまり想像がつかない。けど使い勝手として要素主体の方がよさそうだなーなどと素人考えで思ったりしています。余裕で使い分けるくらいXMLを使いこなす日が来るとは思えないですが、そのくらいできたらいいなぁ。
- 投稿日:2010年4月 6日 23:05
- カテゴリ:スクリプト関連



