XIRD (common XML Interface to Relational Database) とは、 RDBMS(Relational Data Base Management System)をXMLを利用して、 簡単に扱うためのミドルウェアです。
また、XIRDの目標をXIRDのゴールに記述します。
Application ------------------------------- XMLRPC XIRD DBI (XIRD Data Base Independent layer) ------------------------------- XIRD 内部プロトコル XIRD DBD (XIRD Data Base Dependent layer) ------------------------------- Ruby DBI/DBDを利用 RDB -------------------------------
なお、DBIなどの用語はすでにPerl/DBIなどで使用されていますが、XIRDでの 定義はPerl/DBI部分がXIRD DBD部分となっています。つまり、XIRDはPerl/DBI のさらに上のソフトウェアであるということもできます。
最新版:
古いバージョン:
こちら、あるいは同梱のREADME.jaを参照してくだ さい。
注意:ただし、この先の文章はREADME.jaから手動で生成し ています。必ずしも最新の内容をさしているとは限らないことに御注意してくだ さい。最新の内容は、同梱のREADME.ja をみてください。
XIRDを利用するためには、以下のソフトウェアをあらかじめ使用可能な状態に していることが必要となります。
取得したソースコードを展開すると以下のソフトウェアが展開されます。
XIRDのライセンスは修正BSDライセンスに従います。
具体的なライセンス条項は同梱のCOPYRIGHTファイルを参照してください。
変なXMLがきても大丈夫なように。
<xird:row>から、<xird_serial>elementをdelete_elementした 時、なぜ か空白 行が入っている。
hashを計算する時にこの空白も入れたまま計算しているのでかなり注意。
できてるとは思うけど…要確認。
今は同一RDBの中の単一tableにしか対応できていない。
これを同一RDBの中の複数tableに対応できるようにしたいね。
そのためには、
INSERT時にチェックをきちんとする。
queryでのXML構造をresultでもそのまま維持して返す。
現状は構造は破壊され、Flatに展開されてしまう。
;かgoかなど、行末のセパレータを選択する。
[xird-57,58,59]あたりを参照
config.xirdで複数のxird_dbdなどに対応できないといけない
Primary Keyは一つしか対応できない。
複数RDBでのjoinに対応するためには、複数のPrimary keyに対応する必要が あるかも 。
その際は、<map>にprimary_keyの属性をつける必要がありか