2012-02-16 2 views
5

xmlスキーマをlinuxのデータベーススキーマに変換するopensourceツールはありますか?必要なのは、xmlスキーマを読み込み、対応するデータベーススキーマを生成し、それを使ってテーブルを作成する必要があるだけです。私はGoogleにしようとしたが、私は見つけることができるすべてのxsd2dbとは、C#で書かれているが、私のための役に立たない。私はcentosを使用しており、私のデータベースはpostgresqlです。どんな助けもありがとうございます。前もって感謝します。xmlスキーマをLinuxのデータベーススキーマに変換するためのオープンソースツールはありますか?

+0

あなたはツールがあなたに役に立たない理由を明確にしてください。それはC#で書かれているのか、それともあなたのユースケースのための機能がないからですか? XMLスキーマとしてXSDを使用していますか? –

+1

1.一般的なケースでは、あなたが求めているのは[ORM](http://en.wikipedia.org/wiki/Object-relational_mapping)システムであり、おそらくそれ以上のものであることに注意してください。 2.私はこれのためにいくつかのツールを試しましたが、xsd2dbはそれらの1つで、出力には全く満足していませんでした。オブジェクト指向モデルはリレーショナルモデルにはあま​​り適していないため、自動的にそうしようとするツールは完全に間違っているか、結果が複雑であり、理解できないほど複雑であり、処理コードを作成するだけではありません。 – thkala

答えて

3

ネイティブサポートはon the wayと表示されますが、ネイティブは見つかりません。また、仕事をするための適切なツールを見つけることもできません。

これは、XSDについてもう少し学ぶためのきれいな週末プロジェクトですがこれを処理するためにxsd2pgsqlを作成しました。まだまだ荒れているので、試してみて問題があれば教えてください。または、もしあなたが手伝ってくれるなら、それをフォークします。

XMLはデータベースを表現するための最大のフォーマットではありません.3Dであり、DBはかなり2dです。そのため、このスクリプトでは、rootのすべての要素子がプライマリ・テーブルであり、それ以降のcomplexTypeがテーブルであるような仮定があります。つまり、これはほとんどのXMLスキーマ(または少なくともテストした数少ない)で動作するはずです。

-hオプションですべてのオプションを取得できます。しかし、基本的には、引数としてXSDファイルを提供することができます。オプションを使用して動作をわずかに変更したり、SQLをDBに直接実行させることができます。それが実動システムであれば、DBに直接接続せず、SQL出力が良いかどうかを確認し、調整することをお勧めします。ここで

は、リポジトリ内のサンプルファイルと使用例です:python xsd2pgsql.py -f sample-2.xsd sample.xsd

:現在、このテーブル/ XML複合型の間の任意の関係/参照を処理しません。事実の後にそれらのインデックスと必要なインデックスを追加する必要があります。カスタムネームスペースはまだサポートされていません。

これが役に立ちます。

関連する問題