検索
連載

ODP.NETでOracle XML DBを活用するODP.NETファーストステップ(4)(3/4 ページ)

Windowsプラットフォームにおけるアプリケーション開発は、.NETが主流となりつつある。本連載はVisual Basicから.NETへの移行を考えているOracleアプリケーション開発者に向けて、「Oracle Data Provider for .NET」を使うメリットや独自機能、新しいプログラミング・スタイルなどを解説する。(編集局)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

OracleXmlStreamクラスでのXML文書の取得

 OracleXmlStreamクラスは、OracleXmlTypeオブジェクトに格納された読み取り専用ストリームです(以下のコードのEmpXMLはOracleXmlTypeオブジェクトです)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 OracleXmlStreamクラスのReadメソッドを利用すると、指定されたデータ量を現在のXMLストリームのインスタンスから読み込み、配列バッファに移入します。Byte配列とChar配列に値を格納できます。

  • Read(byte[ ], int, int)
    このメソッドは、指定されたUnicodeのバイト数を現在のインスタンスから読み込み、ストリーム内の位置を進め、バイト配列バッファに移入します
  • Read(char[ ], int, int)
    このメソッドは、指定された文字数を現在のインスタンスから読み込み、ストリーム内の位置を進め、文字配列バッファに移入します。
OracleXmlStreamの情報は、「Oracle Data Provider for .NET開発者ガイド」にて詳細に説明してありますので、そちらを参照してください。

ExecuteXmlReaderを使用し、通常の表をXMLで取得

 XMLTypeに格納されたXML文書を取得する以外にも、通常の表をXMLで取得することが可能です。OracleCommandのXmlCommandTypeプロパティを設定し、ExecuteXmlReaderメソッドを使用することにより、通常の表をXML文書として取得できます。ExecuteXmlReaderメソッドにより取得されたXMLは.NET Frameworkで提供されている、XmlReaderクラス/XmlDocumentクラスを利用して操作可能です。

図3 通常の表をXML文書で取得
図3 通常の表をXML文書で取得

 実際のコードは以下のようになります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 上記のコードのように、XmlCommandTypeプロパティがQueryの場合に、OracleCommandクラスで使用されるXMLプロパティをOracleXmlQueryPropertiesクラスで指定可能になります。

名前 説明
MaxRows 問い合わせの結果セットで結果のXML文書として表すことができる最大行数を指定
RootTag 結果のXML文書のルート要素を指定
RowTag 結果セットから作成されたXML文書のデータの行を識別するXML要素の値を指定
Xslt XSLTを使用してXML変換に使用されるXSL文書を指定
XsltParams XSL文書のパラメータを指定
表2 OracleXmlQueryPropertiesのプロパティ

 OracleXmlQueryPropertiesクラスのXsltプロパティを指定すると、取得したXML文書とXSL文書のスタイルシートを組み合わせ、整形化しHTMLとして出力可能です。OracleXmlQueryPropertiesクラスを利用したサンプルアプリケーションは、USのOTNサイトよりダウンロードできます。

画面1 USのOTNサイトに掲載されているサンプルアプリケーション
画面1 USのOTNサイトに掲載されているサンプルアプリケーション
OracleXmlQueryPropertiesの情報は、「Oracle Data Provider for .NET開発者ガイド」にて詳細に説明してありますので、そちらを参照してください。

通常の表をOracleデータベース上でXML文書に変換し、取得する方法

 通常の表をExecuteXmlReaderを使用してXML文書に変換する方法とは別に、Oracle上でXML文書に変換した結果をOracleXmlTypeオブジェクトに格納することも可能です。以下にその手順を説明します。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 XML文書に変換されたビューをOracleXmlTypeに取得するコードは以下のようになります。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

次ページへ続く)

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る