| |
実体参照宣言を利用して、XML文書を分割管理する | ||
|
データのメンテナンスなどを考えると、大きな1つのXML文書をいくつかに分割したいときがあります。DTDの機能である実体参照宣言を利用すると、1つのXML文書を複数に分割できます。
|
2003/7/16
XML文書はテキストエディタなどで簡単にデータを追加できる分、1つのXML文書が大きなものになりがちです。しかし、メンテナンスのしやすさ、ドキュメント(データ)の再利用性という観点から見たとき、極力、個々のデータ単位を小さくしておいた方が有利なケースが少なくありません。
そこでここでは、DTD(Document Type Definition)の「実体参照宣言」を利用して、「DTDで属性リスト宣言を定義する」で使用したbooks.xmlを、<book>要素単位に分割する方法を解説しましょう。
「実体参照」とはその名のとおり、あらかじめ指定された文字列や外部ファイル(このようなリソース全般のことを「実体」といいます)を参照することをいいます。実体参照を用いることによって、XML文書中で共通に使用するリソースの使い回しなどがよりスマートに記述できるようになります。
それでは、具体的な例をみてみることにしましょう。下記が、実体参照を用いたDTDの例です。
[book_depart.xml] |
book_depart.xmlの中に記述されたDTDの以下の部分に注目してみましょう。
<!ENTITY book1 SYSTEM "book1.xml"> |
外部ファイルを参照する実体参照宣言の場合、
<!ENTITY 実体名 SYSTEM "ファイル名">
の形式で記述します。実体名は、XML文書内で「実体」を参照する際に使用する名前を示しますので、同一のXML文書内で必ず一意な名前でなければなりません。
このように宣言された「実体」は、XML文書中からそれぞれ以下のように参照することが可能です。
&book1; |
「&実体名;」の形式で示された実体参照は、まさにこの部分にあらかじめ指定された実体(ファイル)が埋め込まれるイメージだと思っておけばよいでしょう。「&book1;」の部分には、対応するbook1.xmlがインクルードされます。
[book1.xml] |
上記がbook1.xmlの例ですが、こうして実体参照によって複数のXML文書を下記のようにまとめることができます。
![]() |
| 複数のXMLファイルが一個にまとめられる |
なお、実体参照によって呼び出される外部ファイルにも<?xml ?>宣言を付加しなければならない点に注意してください。分割された側のファイル内で2バイト文字が使用されている場合、<?xml ?>宣言で正しい文字エンコーディング名が指定されていないと、文字化けなど、XML文書が正しく処理されない場合があります。また、呼び出し元と呼び出される先で使用される文字コードは、一致していなければなりません。
実体参照は、外部ファイルの呼び出しのみに使用できるわけではありません。以下の例のように、XML文書内で共通に使用される文字列リソースを一元的に管理したいという場合にも使用可能です。
| <!ENTITY srv "サーバーサイド技術"> |
実体参照を使用することで、XML文書内のデータ内容に変更が発生した場合でも影響する範囲を小さくすることができ、メンテナンス時のミスや手間を減らすことが可能になります。
| 「XMLテクニック集」 |
TechTargetジャパン
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -

