人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

XMLとリレーショナルデータベースの相互変換を行う手法を探しています。
現在までの調査による私の認識では、パーサで構文解析を行い、XML項目に対応するGetter/Setterを保持するBeanを介してDBとのやりとりを行う方法が一般的な感じなのですが、以下の問題があり採用するのに躊躇しています。
・XML項目が多い(100項目?)ため、対応するBeanを定義するのが手間
・XMLフォーマットが更新された場合(バージョンアップ)にも柔軟に対応できること
XML項目とリレーショナルDB項目を直接関連付けられ、I/Oできるような手法(ライブラリなど)があれば教えてほしいです。
(バージョンの問題にも対応できればなおうれしいです)

●質問者: raptor555
●カテゴリ:コンピュータ インターネット
✍キーワード:dB I/O XML データベース バージョン
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● mae-san
●50ポイント

http://xmlbeans.apache.org/

xmlbeansを使えばXMLに対応したjava bean は自動で生成できます。(XML Schemaは必要ですが)まあschemaもある程度までは自動生成できるのでそれで手で修正すればいいでしょう。

また別のアプローチですがnativeXML Data Baseを採用する方法もあります。

http://www.unc.edu/~teaguese/portfolioS/nativexml/

XMLの要素数が多く、変更が頻繁に入るのであれば僕ならこちらのアプローチを選択します。

◎質問者からの返答

ありがとうございます!

日本語の資料が少なくて大変なんですが、なんとか調べてみようと思います。


2 ● mae-san
●50ポイント

補足です。

■XML Beans

http://tidus.ultimania.org/wiki/index.php?XMLBeans

http://javayn.seesaa.net/category/1433590-1.html

http://www.beasys.co.jp/e-docs/workshop/docs81/doc/ja_JP/core/in...

XML BeansはANTなど駆使して相当自動化できるはずです。

XML schema修正 → build → deploy

こんなイメージ。

XMLがバインドされたjava object とDBのつなぎですが、これもアプローチによりますがhibernateなどのDAOを使ってみたり、EJB化(CMP)してみたりすればテーブルの再作成はある程度自動化できます。

少なくてもデータ項目の仕様変更がはいったからといってSQL文をガシガシ直して、、みたいな被害は避けられます。

■NativeXML DB

http://www.atmarkit.co.jp/fxml/tanpatsu/18xindice/xindice01.html

Xindiceは僕も以前使用したことがありますが、わりと性能も良く問題なく動いてました。 ただ通常のDBAではメンテできないかもしれないので運用コストは高くつくかもしれません。また当然ですが普通?のRDBMSに比べれば(特に更新系が)低速です。

システム、データ規模、更新頻度など色々考慮して最適なソリューションを選択する必要はあるとは思いますが、頑張ってください!

◎質問者からの返答

大変参考になります。

XMLBeansの説明は、BEAのサイトが詳しいですね。

最初検索したとき、「WebLogic情報なんかいらねぇ」とあまり見なかったのですが、BEAがもともとの開発元だったんですね...

よく見たらすごく詳しく解説されていました...

DBについては、

・リレーショナルを使用

・DBMSに依存しない

の縛りがあるので、XML Beansを使用して参照更新を行うような形になると思います。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ