![]() |
階層構造の深さによるメリット・デメリット |
XML文書の階層の深さにによるメリット・デメリットはありますか? あまり深くしすぎるのなら、複数のXML文書に分割するほうがよいのでしょうか? |
回答/富士ソフトABC株式会社 技術センター
2001/10/17
結論から申しあげますと、階層の深さはXML文書化するデータの内容や目的によって決めることが望ましいので、階層構造を深くすることによるメリット・デメリットについては、あまり考えなくてもよいでしょう。
階層構造を浅くするメリットとしては、データを処理しやすいことが挙げられます。階層が浅いことで、深い構造をたどることなく目的のデータにアクセスできます。デメリットとしては、データの関連性が分かりづらくなることと、同様の意味を持つ要素を使いまわすことができなくなることなどが挙げられます。
例えば個人情報のデータがあったとして、個人の情報と勤務先の情報が同じ階層で定義されていたら見づらいし、名前などは要素の定義としては個人名であれ会社名であれ変わらないものなので、それぞれの階層の下で同じ要素名を使用した方がよい場合があります。結果、階層が浅い場合、名前付けで多大な労力が必要になる場合があります。
<担当者名>山田太郎</担当者名> |
文書構造が浅いXML文書の例。すべての情報を、異なるタグで表現しようとしている |
次に階層構造が深い場合ですが、メリットとしては階層化することで分かりやすい構造になること、名前など同じ定義の要素を複数の場所で使用することが可能になる、といったことが挙げられます。デメリットは、階層が深くなることで目的のデータへのアクセスが複雑になります。また、同じ要素を複数の場所で使用した場合、その要素のみを見ても、それが目的の要素なのか判別できない場合があります。判別する場合は、上の階層からの要素名をXPathで連結指定する必要があります。
<担当者> |
文書構造を深くしたXML文書の例。担当者の電話番号と、企業の電話番号を表す意味で、<電話番号>タグが2カ所に使われている |
このように、階層が浅い場合のメリットは深い場合のデメリットとなり、その逆も成り立つわけです。最初に書いたように、階層は、データの内容や目的を踏まえて、要素にするべきか属性にするべきかを検討し、結果として階層を決めるべきです。ただし、極端に浅かったり、極端に深いといった階層構造の場合は、それぞれのデメリットの方が強くなるので注意しましょう。
![]() |
「Ask XML Expert」 |
- 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」の詳細も紹介する
![]() |
|
|
|
![]() |