XIRD (common XML Interface to Relational Database)

XIRDとは

XIRD (common XML Interface to Relational Database) とは、 RDBMS(Relational Data Base Management System)をXMLを利用して、 簡単に扱うためのミドルウェアです。

XIRDに可能なことと不可能なこと

可能なこと

また、XIRDの目標をXIRDのゴールに記述します。

不可能なこと

XIRDの全体構成

        Application
-------------------------------     XMLRPC 
          XIRD DBI  
(XIRD Data Base Independent layer)
-------------------------------     XIRD 内部プロトコル
          XIRD DBD  
 (XIRD Data Base Dependent layer)
-------------------------------     Ruby DBI/DBDを利用
            RDB
-------------------------------
Application
XIRDを利用し、RDBを扱うアプリケーション。
XIRD DBI
アプリケーションからの要求を受け取り、XIRD DBDへ渡す部分。
XIRD DBD
各種RDBを扱うためのRDB依存部分。
RDB
実際にデータを保持しているRDB。

なお、DBIなどの用語はすでにPerl/DBIなどで使用されていますが、XIRDでの 定義はPerl/DBI部分がXIRD DBD部分となっています。つまり、XIRDはPerl/DBI のさらに上のソフトウェアであるということもできます。

Download

最新版:

古いバージョン:

XIRDの使いかた

こちら、あるいは同梱のREADME.jaを参照してくだ さい。

注意:ただし、この先の文章はREADME.jaから手動で生成し ています。必ずしも最新の内容をさしているとは限らないことに御注意してくだ さい。最新の内容は、同梱のREADME.ja をみてください。

準備

XIRDを利用するためには、以下のソフトウェアをあらかじめ使用可能な状態に していることが必要となります。

共通

xird_dbi.rb

xird_dbd.rb

Install

取得したソースコードを展開すると以下のソフトウェアが展開されます。

/usr/local/以下などへのインストール作業は、お手数ですが、御自分でお願いします。

LICENSE

XIRDのライセンスは修正BSDライセンスに従います。

具体的なライセンス条項は同梱のCOPYRIGHTファイルを参照してください。

更新履歴

2004-11-07

xird-0.0.2公開

2004-08-03

一般公開

連絡先

TODO

エラー処理

変なXMLがきても大丈夫なように。

空白処理

<xird:row>から、<xird_serial>elementをdelete_elementした 時、なぜ か空白 行が入っている。

hashを計算する時にこの空白も入れたまま計算しているのでかなり注意。

Name Space対応

できてるとは思うけど…要確認。

複数tableへの対応

今は同一RDBの中の単一tableにしか対応できていない。

これを同一RDBの中の複数tableに対応できるようにしたいね。

そのためには、

accept_null対応

INSERT時にチェックをきちんとする。

XML構造の維持

queryでのXML構造をresultでもそのまま維持して返す。

現状は構造は破壊され、Flatに展開されてしまう。

xird_compilerでの処理

;かgoかなど、行末のセパレータを選択する。

version 2.0へのTODO

属性値に対してRDBの値を関係づけるこ と

[xird-57,58,59]あたりを参照

トランザクション

複数RDBへのjoin

config.xirdで複数のxird_dbdなどに対応できないといけない

primary_key

Primary Keyは一つしか対応できない。

複数RDBでのjoinに対応するためには、複数のPrimary keyに対応する必要が あるかも 。

その際は、<map>にprimary_keyの属性をつける必要がありか

認証機構