第4回:XMLの出力環境 (3/3)

XMLで開発ドキュメント

【楽々デブドックを書こう!】XMLで開発ドキュメント

第4回:XMLの出力環境

著者:佐賀大学総合情報基盤センター 只木 進一

公開日:2008/02/27(水)

データの活用

XMLはJavaと親和性が強い。JavaでXML文書を扱う方法として、SAX(Simple API for XML)とDOM(Document Object Model)がある。SAX はXML文書を先頭から読み、その内容をイベントとしてプログラムを駆動する枠組みである。XML文書の妥当性チェックやXSLによる他の形式の文書への出力で使われる。例としては、ApacheプロジェクトのXercesのSaxCounterがある。

また、SAXを使えば複数のXML文書に対して、文書中の項目一覧や特定の条件に一致する項目の一覧などを作成することができる。データベースへ格納するSQL分を作るなどの作業に利用できよう。

一方のDOMはXML文書の木構造をメモリ上にすべて取り込む。取り込んだ後、木構造の根から要素をたぐって、編集などの操作ができる。最後に、木構造をXML文書としてファイルへ書き込むことも可能だ。

DOMでは、XML文書全体がクラスorg.w3c.dom.Documentのインスタンスとして、読み込まれる。タグに対応した要素はクラスorg.w3c.dom.Nodeのインスタンスとなっている。そう、XML文書全体がオブジェクト指向文書になっていて、それをオブジェクト指向プログラミング言語で扱っているだけなのだ。DOMを使うことで、専用エディタを作ることも可能である。また、データベースと連携して、項目入力を支援することもできる。

XMLとデータベースの連携、特にデータベースシステムが直接XML文書を扱うことは、XML登場の当初から期待されてきたことである。XMLとデータベースの連携には、2つの考え方が混ざっている。第1はXML文書そのものを本当にデータベース的に検索するというものである。タグに対応した要素を検索対象とする。

現実的ソリューションが提示されいるものは、第2のXMLとデータベースの連携である。こちらは、XML文書のデータから、スキーマを用いて選択的に要素の内容を選び、そのデータをSQLデータベースに格納するものである。検索では、ヒットしたら、元のXML文書を引っ張り出すというものだ。

Image

知らないところで使われているXML文書

今回は、情報システムの仕様策定を例にとって、開発ドキュメントをXMLで書くということを論じてきた。最後に、文書作成という観点でXMLの状況を見ていこう。

実は、技術文書をXMLで書こうというプロジェクトは、XMLの当初から存在している。DocBook(http://www.oasis-open.org/docbook/)である。DocBookは一般的技術文書全体をカバーしようと、スキーマを定めている。従って、LaTeXでjarticle.clsを使って文書を書くのと同様である。多様な技術文書に対応できるため、自由度が大きい。仕様書のような場合には、Wordで書くのと同じで、自由すぎるだろう。

世の中では「オープンソフトウェア」という言葉が飛び交っている。公開された規格に則ったソフトウェアという意味である。規格が公開されているので、互換性が保証される。そうすることで、ソフトウェアの囲い込みを防ぎ、使いやすさや効率で競争を促進し、結果として質の向上をはかろうということである。

文書作成や表計算などのオフィス統合環境にも「オープンソフトウェア」の流れが押し寄せている。ODF(Open Document Format)である。少し大きな組織であれば、組織内のコンピュータOSが単一ではないケースが多い。少なくともOSのバージョンの幅がある。つまり、使っているオフィス統合環境が異なっており、同じであってもバージョンの異なるものが混じってしまう。そのような状況の中で、文書を交換しなければならないのである。そこで、登場したのがOpenOfficeだ。OpenOfficeはODFに対応したオフィス環境である。

OpenOfficeは文書形式の仕様が公開されている。OpenOfficeで作成した文書ファイルは、拡張子がodtとなっている。fileコマンドでこのファイルタイプを見ると「ZIPアーカイブ」と表示されており、その実体はjarファイルであることがわかる。また、ファイルの中から文書本体に対応したXMLファイルが出てくる。となると、Javaから直接、触ることも難しくないということだ。

また、Office 2003ではデータがバイナリ形式で、それに対応してApacheではMicrosoftの文書や表計算をJavaから触るプロジェクトがある。MicrosoftのOffice 2007はODFに対応ではないが、やはりXML形式を使っているようである。

さらに、ODFにしてもMicrosoft Officeにしても、Javaなどからデータを触るSDK(Software Development Kit)がある。現状をみていくとXML文書の最終の出力形式をODFやMicrosoft Officeの文書形式に出すことも可能であろう。

このように、身近なところにもXML形式のものがあり、知らず知らずのうちに浸透していくと考えられる。今後もXML形式の文書の広がりは注目していきたい。 タイトルへ戻る




佐賀大学総合情報基盤センター 只木 進一
著者プロフィール
佐賀大学総合情報基盤センター 只木 進一
センター長・教授
交通流やインターネットパケットの流れなど、自己駆動粒子系の研究を専門としている。並行して、情報システムの管理運用技術の研究開発も行っている。XMLやJavaなどを仕事道具として活用している。
http://www.cc.saga-u.ac.jp/


INDEX
第4回:XMLの出力環境
 NetBeans 6について
 LaTeX出力その他
データの活用
【楽々デブドックを書こう!】XMLで開発ドキュメント
第1回標準化と再利用
第2回情報システムにXMLが求められる背景
第3回情報システムの仕様をXMLで記述する!
第4回XMLの出力環境

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30