OracleXmlStreamオブジェクトは、OracleXmlTypeオブジェクトに格納されているXMLデータの読取り専用ストリームを表します。
クラスの継承
System.Object
System.MarshalByRefObject
System.Stream
System.OracleXmlStream
宣言
// C# public sealed class OracleXmlStream : IDisposable, ICloneable
スレッド安全性
パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。
要件
ネームスペース: Oracle.DataAccess.Types
アセンブリ: Oracle.DataAccess.dll
Microsoft .NET Frameworkバージョン: 1.xまたは2.0
このクラスは、Oracle9iリリース2(9.2)以上でのみ使用できます。
OracleXmlStreamメンバーを次の表にリストします。
OracleXmlStreamコンストラクタ
OracleXmlStreamコンストラクタのリストを、表6-12に示します。
表6-12 OracleXmlStreamコンストラクタ
| コンストラクタ | 説明 |
|---|---|
|
|
OracleXmlStream静的メソッド
OracleXmlStream静的メソッドのリストを、表6-13に示します。
OracleXmlStreamインスタンス・プロパティ
OracleXmlStreamインスタンス・プロパティのリストを、表6-14に示します。
表6-14 OracleXmlStreamインスタンス・プロパティ
| プロパティ | 説明 |
|---|---|
|
XMLストリームが読取り可能かどうかを示します |
|
|
順方向および逆方向検索操作が実行可能であるかどうかを示します |
|
|
CanWrite |
サポート対象外 |
|
XMLデータの取得に使用される |
|
|
XMLストリーム内のバイト数を示します |
|
|
ストリーム内のバイト位置を取得または設定します |
|
|
ストリーム内の最初の文字が文字列であるXMLデータを戻します |
OracleXmlStreamインスタンス・メソッド
OracleXmlStreamインスタンス・メソッドのリストを、表6-15に示します。
表6-15 OracleXmlStreamインスタンス・メソッド
| メソッド | 説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
現行のストリームをクローズし、それに関連するリソースを解除します |
|
|
このオブジェクトによって割り当てられたリソースを解除します |
|
|
|
|
|
|
|
|
|
|
|
|
サポート対象外 |
|
|
|
|
|
|
|
|
|
|
|
|
|
現行のストリーム・インスタンスから指定された量を読み取り、配列バッファに移入します(オーバーロード) |
|
|
|
|
|
現行のストリーム内に位置を設定し、現行のストリーム内の新規の位置を戻します |
|
|
|
サポート対象外 |
|
|
|
|
|
サポート対象外 |
|
|
サポート対象外 |
このコンストラクタは、OracleXmlTypeオブジェクトに格納されているXMLデータのStream表現を提供するOracleXmlStreamオブジェクトのインスタンスを作成します。
宣言
// C#
public OracleXmlStream(OracleXmlType xmlType);
パラメータ
xmlType
OracleXmlTypeオブジェクト
備考
OracleXmlStreamは、構成元であるOracleXmlTypeオブジェクトからのOracleConnectionオブジェクトを暗黙的に使用します。
OracleXmlStream静的メソッドのリストを、表6-16に示します。
OracleXmlStreamインスタンス・プロパティのリストを、表6-17に示します。
表6-17 OracleXmlStreamインスタンス・プロパティ
| プロパティ | 説明 |
|---|---|
|
XMLストリームが読取り可能かどうかを示します |
|
|
順方向および逆方向検索操作が実行可能であるかどうかを示します |
|
|
|
サポート対象外 |
|
XMLデータの取得に使用される |
|
|
XMLストリーム内のバイト数を示します |
|
|
ストリーム内のバイト位置を取得または設定します |
|
|
ストリーム内の最初の文字が文字列であるXMLデータを戻します |
Streamをオーバーライドします。
このプロパティは、XMLストリームが読取り可能であるかどうかを示します。
宣言
// C#
public override bool CanRead{get;}
プロパティ値
XMLストリームが読取り可能である場合はtrueを戻し、それ以外の場合はfalseを戻します。
Streamをオーバーライドします。
このインスタンス・プロパティでは、順方向および逆方向検索操作が実行可能かどうかを示します。
宣言
// C#
public override bool CanSeek{get;}
プロパティ値
順方向および逆方向検索操作が実行可能である場合は、trueを戻します。それ以外の場合はfalseを戻します。
このインスタンス・プロパティは、XMLデータの取得に使用されるOracleConnectionを示します。
宣言
// C#
public OracleConnection Connection {get;}
プロパティ値
OracleConnection
例外
ObjectDisposedException: オブジェクトはすでに処理されています。
Streamをオーバーライドします。
このプロパティは、XMLストリーム内のバイト数を示します。
宣言
// C#
public override Int64 Length{get;}
プロパティ値
XMLストリーム内のバイト数を表すInt64値。空のストリームは0バイト長です。
例外
ObjectDisposedException: オブジェクトはすでに処理されています。
InvalidOperationException: OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。
Streamをオーバーライドします。
このプロパティは、ストリーム内のバイト位置を取得または設定します。
宣言
// C#
public override Int64 Position{get; set;}
プロパティ値
ストリーム内の現行の位置を示すInt64
例外
ObjectDisposedException: オブジェクトはすでに処理されています。
InvalidOperationException: OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。
ArgumentOutOfRangeException: Positionが0未満です。
備考
ストリームの始まりは位置0によって表されます。ストリーム長を超えている位置の検索がサポートされています。
このプロパティは、ストリーム内の最初の文字が文字列であるXMLデータを戻します。
宣言
// C#
public string Value{get; set;}
プロパティ値
string
例外
ObjectDisposedException: オブジェクトはすでに処理されています。
InvalidOperationException: OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。
備考
このプロパティの使用により、Positionの値が使用または変更されることはありません。
このプロパティによって戻されることができる文字列の最大長は2GBです。
OracleXmlStreamインスタンス・メソッドのリストを、表6-18に示します。
表6-18 OracleXmlStreamインスタンス・メソッド
| メソッド | 説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
現行のストリームをクローズし、それに関連するリソースを解除します |
|
|
このオブジェクトによって割り当てられたリソースを解除します |
|
|
|
|
|
|
|
|
|
|
|
|
サポート対象外 |
|
|
|
|
|
|
|
|
|
|
|
|
|
現行のXMLストリーム・インスタンスから指定された量を読み取り、配列バッファを移入します(オーバーロード) |
|
|
|
|
|
現行のストリーム内に位置を設定し、現行のストリーム内の新規の位置を戻します |
|
|
|
サポート対象外 |
|
|
|
|
|
サポート対象外 |
|
|
サポート対象外 |
このメソッドは、OracleXmlStreamオブジェクトのコピーを作成します。
宣言
// C# public object Clone();
戻り値
OracleXmlStreamオブジェクト
実装
ICloneable
例外
ObjectDisposedException: オブジェクトはすでに処理されています。
InvalidOperationException: OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。
備考
複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。
Streamをオーバーライドします。
このメソッドは現行のストリームをクローズし、それに関連するリソースを解除します。
宣言
// C# public override void Close();
このパブリック・メソッドは、このオブジェクトによって割り当てられたリソースを解除します。
宣言
// C# public void Dispose();
実装
IDisposable
備考
オブジェクトは、処理後は再度使用できません。一部のプロパティには継続してアクセスできますが、その値は適切ではありません。リソースが解放されているため、メソッドのコールにより例外が発生することがあります。
このメソッドは、現行のXMLストリーム・インスタンスから指定された量を読み取り、配列バッファを移入します。
オーバーロード・リスト:
このメソッドは現行のインスタンスから指定された量のUnicodeバイトを読み取り、ストリーム内の位置を拡張し、バイト配列バッファを移入します。
このメソッドは現行のインスタンスから指定された量の文字を読み取り、ストリーム内の位置を拡張し、文字配列バッファを移入します。
Streamをオーバーライドします。
このメソッドは現行のインスタンスから指定された量のUnicodeバイトを読み取り、ストリーム内の位置を拡張し、バイト配列バッファを移入します。
宣言
// C# public override int Read(byte[ ] buffer, int offset, int count);
パラメータ
buffer
移入されるバイト配列バッファ
offset
バッファが移入されるゼロベースのオフセット(バイト)
count
読み取られるバイトの最大量
戻り値
指定されたbyte[]バッファに読み取られるUnicodeバイト数か、ストリームの終わりに達した場合の0
備考
このメソッドは現行のストリームから最大countバイトを読み取り、それをoffsetで始まるバッファに格納します。ストリーム内の現行の位置は、読み取られたバイト数によって拡張されます。ただし、例外発生時には、ストリーム内の現行の位置は変更されません。
XMLデータの読取りは、Positionプロパティにより指定された位置から開始されます。
例外
ObjectDisposedException: オブジェクトはすでに処理されています。
InvalidOperationException: OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。
Streamをオーバーライドします。
このメソッドは現行のインスタンスから指定された量の文字を読み取り、ストリーム内の位置を拡張し、文字配列バッファを移入します。
宣言
// C# public override int Read(char[ ] buffer, int offset, int count);
パラメータ
buffer
移入される文字配列バッファ
offset
バッファが移入される、バッファ内のゼロベースのオフセット(文字)
count
ストリームから読み取られる文字の最大量
戻り値
戻り値はストリームから読み取られる文字数か、ストリームの終わりに達した場合の0を示します。
例外
ObjectDisposedException: オブジェクトはすでに処理されています。
InvalidOperationException: OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。
備考
このメソッドでは、ストリーム・インスタンス上のPositionがゼロまたは偶数である必要があります。
XMLデータの読取りは、Positionプロパティにより指定された位置から開始されます。
Streamをオーバーライドします。
このメソッドは現行のストリーム内に位置を設定し、現行のストリーム内の新規の位置を戻します。
宣言
// C# public long Seek(long offset, SeekOrigin origin);
パラメータ
offset
起点に相対的なバイト・オフセット
offsetが負の場合は、新規位置がoffsetによって指定されたバイト数だけ、originで指定した位置より前にあります。
オフセットがゼロの場合、新規の位置はoriginによって指定された位置になります。
offsetが正の場合は、新規位置はoffsetによって指定されたバイト数だけ、originで指定した位置より後にあります。
origin
新規の位置の取得に使用される参照ポイントを示すタイプSeekOriginの値
戻り値
現行のストリーム内の新規のPosition
例外
ObjectDisposedException: オブジェクトはすでに処理されています。
InvalidOperationException: OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。
備考
現行のインスタンスが検索をサポートしているかどうかを調べるには、CanSeekプロパティを使用します。ストリーム長を超えている位置の検索がサポートされています。