OracleでXMLを活用する
XSQLプログラミング入門
第2回 XSQLタグの機能を使う
XSQLは、プログラムそのものもXML文書であり、それを実行することで、データをXML文書として取り出すことが可能になる。今回は、そのXSQLが備えている主要なタグについて、個々に解説していこう。
小山尚彦、Chienowa.comチーム
日本オラクル株式会社
2000/7/11
主要XSQLタグの概要 |
今回は、XSQLの主要なタグについて詳しく解説していきましょう。XSQLver1.0.0では標準で16のタグが用意されています。それらは大きく以下の5つに分けることができます。
- (1)XML文書の出力に使用されるもの
- <xsql:query>
<xsql:no-rows-query>
<xsql:ref-cursor-function>
(2)DBへデータを更新・挿入するもの- <xsql:dml>
<xsql:include-owa>
<xsql:insert-request>
<xsql:insert-param>
(3)HTTPで使われるユーティリティ- <xsql:include-request-params>
<xsql:include-param>
<xsql:set-page-param>
<xsql:set-coookie>
<xsql:set-session-param>
<xsql:set-stylesheet-param>
(4)XML文書を他の場所(URL)から取り込むもの- <xsql:include-xml>
<xsql:include-xsql>
(5)機能拡張するもの- <xsql:action>
今回はこれらタグの使い方に焦点を当てていきます。 また、(5)の<xsql:action>タグを活用すれば、ユーザーの用途にあったアクションハンドラー(Action Handler)と呼ばれるプログラムをJavaで作ることも可能です。またそのようなカスタムアクションハンドラーをXSQLConfig.xmlファイルに記入し、10個までマクロ登録もできますが、その内容は連載第3回で紹介いたします。
DataをDBから取り出すときに使用するXSQLタグ <xsql:query>, <xsql:no-rows-query>, <xsql:ref-cursor-function> |
<xsql:query>ハンドラーはXSQLでもっとも重要度の高いハンドラーです。XSQLはこの機能をするために開発されたと言っても過言ではありません。ですから、このタグにはたくさんの機能が付随しています。これらのうちタグの引数(attribute)として渡されるものは次のようになっています。
引数名 | 引数値 | 役割 |
fetch-size | 整数 | データベースからのデータ取り出しの際一度に取り出してくるレコードの数を設定。 デフォルト値はXSQLConfig.xmlファイルの/XSQLConfig/processor/default-fetch-sizeで定義 |
id-attribute | 文字列 | <ROW>タグ内でのレコードにつけられるidのattributeの名前を指定。デフォルトは“num” |
id-attribute-column | 文字列 | この引数を指定することにより、<ROW>タグ内でのレコードに付けられるidのattributeの値を、データベースの列名に置きかえることができる。デフォルトは、レコードが見つかった順番に1から整数で割り振られる |
max-rows | 整数 | 一度に出力する最大のレコード数を指定する |
null-indicator | ブール値 yes/no |
列がNULLであった場合、タグを出力するかどうかを指定する。デフォルトは“no” |
row-element | 文字列 |
レコードの親エレメントとして割り振るタグの名前を指定。デフォルトは“ROW”。 |
rowset-element | 文字列 | <ROW>の親エレメントの名前を指定。デフォルトは“ROWSET”です。 “”と指定すると、<ROWSET>はまったく出力されななる。 |
skip-rows | 整数 | 出力せずにとばす上位のレコード数を指定。<max-element>との組み合わせで、複数ページに分けてレコードを出力するときに使う。 |
tag-case | 文字列 upper/lower |
出力されるタグが大文字か小文字かを指定する |
この表だけではわかりにくいでしょうから、例を使って説明します。この例で使うデータベースについては前回の記事をご覧ください。
まずは<xsql:query>で全件検索をしてみましょう。次のようになります。
全件検索を行う
|
出力されるXML文書は次のようになります。
全件検索された結果
|
さて、今度は下記のようなXSQLプログラムを作り、呼び出してみます。
設定を追加して検索を行う
<?xml version='1.0' encoding="Shift_JIS"?> |
これによって出力されるXML文書は次のようになります。
出力されたXML文書<?xml version="1.0" encoding="Shift_JIS"
?> |
前の例と比べてみてどこが変わったかわかっていただけるでしょうか。
- まずtag-case = "lower"ですべてのタグが小文字になりました。
- そして、rowset-element = "EMPLOYEES"で<ROWSET>タグが<employees>タグに、<ROW>タグがrow-element = "EMPLOYEE"によって<employee>タグに置き換えられました。
- <employee>タグの"num"は、id-attribute = "emp_id"によって"emp_id"になりましたし、その値はemp表のEMPNO列からとってくることがid-attribute-column = "EMPNO"によって指定されています。
- また、max-rows="3"で出力されたレコードの数は3つだけですし、skip-rows="2"によって佐野力社長および佐藤聡俊VPのレコードが飛ばされています。
- 最後にnull-indicator="yes"によって、NULL値が入っているCOMM列にもタグが出力されています。
これらの設定はすべて、前述のXSQLプログラムによって指定されたものです。
目次 |
1ページ 主要XSQLタグの概要 XML形式への出力言語 DataをDBから取り出すときに使用するXSQLタグ XSQLでデータベースを検索する 引数を用いた動的な検索 2ページ 動的な検索も可能に 該当レコードがないときに実行される文 カーソルの扱い オブジェクトデータの取り扱い 3ページ Dataを挿入または変更するときに使用するXSQLタグ INSERT文を実行する ストアドプロシージャを実行する Webフォームからのデータ挿入(1) Webフォームからのデータ挿入(2) 4ページ 他のXML文書やXSQL出力をインポートするタグ その他の便利なXSQLタグ HTTPパラメータを処理する パラメータの設定 セッションの設定 クッキーの設定 スタイルシートに実行結果を渡す |
「連載 XSQLプログラミング入門」 |
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|