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.0以降
次の表に、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ストリーム・インスタンスから指定数を読み取り、配列バッファに移入します。
オーバーロード・リスト:
このメソッドでは、現行のインスタンスから指定されたユニコードのバイト数を読み取り、ストリーム内の位置を進め、バイト配列バッファに移入します。
このメソッドでは、現行のインスタンスから指定された文字数を読み取り、ストリーム内の位置を進め、文字配列バッファに移入します。
Streamをオーバーライドします。
このメソッドでは、現行のインスタンスから指定されたユニコードのバイト数を読み取り、ストリーム内の位置を進め、バイト配列バッファに移入します。
宣言
// C# public override int Read(byte[ ] buffer, int offset, int count);
パラメータ
buffer
移入されるバイト配列バッファ
offset
バッファに移入されるゼロ・ベースのオフセット(バイト)。
count
読み取られる最大バイト数
戻り値
ストリームの終わりに到達したとき、所定のbyte[]バッファに読み込むユニコードのバイト数または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で指定した位置より前にあります。
offsetがゼロの場合は、originで指定した位置が新規位置となります。
offsetが正の場合は、新規位置はoffsetによって指定されたバイト数だけ、originで指定した位置より後にあります。
origin
新規位置を取得する場合に使用する参照ポイントを示すタイプSeekOriginの値。
戻り値
現行ストリーム内の新規Position。
例外
ObjectDisposedException: オブジェクトはすでに処理されています。
InvalidOperationException: OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。
備考
CanSeekプロパティを使用して、現行インスタンスが検索をサポートしているかどうかを判断します。ストリーム長を超えた位置の検索がサポートされています。