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

XML文書をDBに保存したいのですが、通常のDBでは構造を保ったままDBに入れることは無理です。例えば<xml><abc>Hello</abc></xml> という構造のHelloだけ抜き出してDBに入れることは可能ですが、Helloと<abc>タグが対になっていることは保存は無理ということです。

TaminoなどのNative DBというのがあるのは知っていますが、MySQLやPostgresでうまいことXML文書の構造を保ちながらDBにいれる良い方法はないでしょうか?

関係ないですが、MSSQL2005やOracle10gでは良い方法があるみたいですね。

●質問者: moonhappy
●カテゴリ:コンピュータ インターネット
✍キーワード:dB Hello MySQL XML うまい
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● fonya3
●27ポイント

http://www.atmarkit.co.jp/fdb/single/04_tx1/tx1_01.html

今までXMLをDBに入れようという用事が無かったので今回改めて

調べてみて思ったのですが(↑)を見るとXMLDBはRDBとは全く

異質なものですね。MySQLもPostgreSQLもRDBなのでネイティブ

でXMLデータを格納する手段はないでしょう。

やるとしたら、XMLの構造に合わせたしたテーブルを用意して入れ

るかですが、XML → 変換 → DB → 変換 → XML という感じで

全然うれしくないですよね。

それか、

親tag level tag value

のようなテーブルを用意してXML構造ごとDBに保管するかという

感じでしょうか。

と思って再度人力検索をかけたら

http://www.ipa.go.jp/about/news/event/pdf/29A4_yui.pdf#searc...

こんな試みを発見!

現状、試行錯誤中という感じでしょうか。

MySQLでも

http://dev.mysql.com/doc/refman/4.1/ja/compatibility.html

「データベースサーバでの XML サポートの提供を考えています。」

との説明もありました。

もうしばらくことの進展を待たないといけないみたいですね。

◎質問者からの返答

実は紹介して頂いたサイトは既に見ています。1年くらい前に見ましたが未だに進展無しとなれば当分時間がかかりそうですね。やはり目的の事を達するにはネイティブXML DBを使うしかなさそうですね。


2 ● s0u
●0ポイント

IBM DB2 の新しいバージョン(v9)で扱えるという事ですがどんなもんかは良くわからないですね。

IBM DB2 9 - Japan


3 ●
●53ポイント ベストアンサー

XMLをDBに格納して何をしたいのでしょうか。

利用目的が分からないので、なんとも言えませんが、単純にXML文書を格納したいだけでしたら、MySQLであれば各種BLOB型、PostgreSQLであればbytea型に保存すれば良いと思います。

質問文にある「XML文書の構造を保ちながらDBにいれる」ことは可能です。

XML文書の内部を柔軟に検索したい場合、こちらで紹介されているようなネイティブXMLデータベース製品を使う必要があります。

用途によると思いますが、Xprioriという無料のXML/DBもあります。

ただし、OSはWindows系、DBサイズの上限が1GB、非商用、個人利用などの制限がありますのでご注意ください。

あるいは、Xindiceを使ってみても良いかもしれません。

参考になれば幸いです。

関連質問


●質問をもっと探す●



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