言語

ISQLXML インターフェイス

定義

SQL XML 型の JavaTM プログラミング言語でのマッピング。

[Android.Runtime.Register("java/sql/SQLXML", "", "Java.Sql.ISQLXMLInvoker")]
public interface ISQLXML : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/sql/SQLXML", "", "Java.Sql.ISQLXMLInvoker")>]
type ISQLXML = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
属性
実装

注釈

SQL XML 型の JavaTM プログラミング言語でのマッピング。 XML は、データベース テーブルの行に列値として XML 値を格納する組み込み型です。 既定では、ドライバーは、データ自体ではなく XML データへの論理ポインターとして SQLXML オブジェクトを実装します。 SQLXML オブジェクトは、作成されたトランザクションの期間中有効です。

SQLXML インターフェイスには、文字列、リーダーまたはライター、またはストリームとして XML 値にアクセスするためのメソッドが用意されています。 XML 値には、ソースを介してアクセスすることも、結果として設定することもできます。これは、DOM、SAX、StAX などの XML パーサー API、XSLT 変換、XPath 評価で使用されます。

インターフェイス ResultSet、CallableStatement、PreparedStatement のメソッド (getSQLXML など) を使用すると、プログラマは XML 値にアクセスできます。 さらに、このインターフェイスには XML 値を更新するためのメソッドがあります。

SQLXML インスタンスの XML 値は、次を使用して BinaryStream として取得できます。

SQLXML sqlxml = resultSet.getSQLXML(column);
              InputStream binaryStream = sqlxml.getBinaryStream();

たとえば、DOM パーサーを使用して XML 値を解析するには、次のようにします。

DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
              Document result = parser.parse(binaryStream);

または、SAX パーサーを使用して XML 値をハンドラーに解析する場合:

SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
              parser.parse(binaryStream, myHandler);

StAX パーサーを使用して XML 値を解析する場合:

XMLInputFactory factory = XMLInputFactory.newInstance();
              XMLStreamReader streamReader = factory.createXMLStreamReader(binaryStream);

データベースは XML に最適化された表現を使用する可能性があるため、getSource() と setResult() を介して値にアクセスすると、ストリーム表現にシリアル化して XML を解析することなく、処理パフォーマンスが向上する可能性があります。

たとえば、DOM ドキュメント ノードを取得するには、次のようにします。

DOMSource domSource = sqlxml.getSource(DOMSource.class);
              Document document = (Document) domSource.getNode();

または、値を DOM ドキュメント ノードに myNode に設定する場合:

DOMResult domResult = sqlxml.setResult(DOMResult.class);
              domResult.setNode(myNode);

または、SAX イベントをハンドラーに送信するには、次のようにします。

SAXSource saxSource = sqlxml.getSource(SAXSource.class);
              XMLReader xmlReader = saxSource.getXMLReader();
              xmlReader.setContentHandler(myHandler);
              xmlReader.parse(saxSource.getInputSource());

または、SAX イベントの結果値を設定するには、次のようにします。

SAXResult saxResult = sqlxml.setResult(SAXResult.class);
              ContentHandler contentHandler = saxResult.getXMLReader().getContentHandler();
              contentHandler.startDocument();
              // set the XML elements and attributes into the result
              contentHandler.endDocument();

または、StAX イベントを取得する場合:

StAXSource staxSource = sqlxml.getSource(StAXSource.class);
              XMLStreamReader streamReader = staxSource.getXMLStreamReader();

または、StAX イベントの結果値を設定するには、次のようにします。

StAXResult staxResult = sqlxml.setResult(StAXResult.class);
              XMLStreamWriter streamWriter = staxResult.getXMLStreamWriter();

または、xsltFile 出力の XSLT を使用して XML 値に対して XSLT 変換を実行する場合は、resultFile をファイルします。

File xsltFile = new File("a.xslt");
              File myFile = new File("result.xml");
              Transformer xslt = TransformerFactory.newInstance().newTransformer(new StreamSource(xsltFile));
              Source source = sqlxml.getSource(null);
              Result result = new StreamResult(myFile);
              xslt.transform(source, result);

または、XML 値で XPath 式を評価する場合は、次のようにします。

XPath xpath = XPathFactory.newInstance().newXPath();
              DOMSource domSource = sqlxml.getSource(DOMSource.class);
              Document document = (Document) domSource.getNode();
              String expression = "/foo/@bar";
              String barValue = xpath.evaluate(expression, document);

XML 値を XSLT 変換の結果として設定するには:

File sourceFile = new File("source.xml");
              Transformer xslt = TransformerFactory.newInstance().newTransformer(new StreamSource(xsltFile));
              Source streamSource = new StreamSource(sourceFile);
              Result result = sqlxml.setResult(null);
              xslt.transform(streamSource, result);

newTransformer() を呼び出すことによって指定された ID 変換を使用して、任意のソースを Result に変換できます。

Transformer identity = TransformerFactory.newInstance().newTransformer();
              Source source = sqlxml.getSource(null);
              File myFile = new File("result.xml");
              Result result = new StreamResult(myFile);
              identity.transform(source, result);

ソースの内容を標準出力に書き込むには:

Transformer identity = TransformerFactory.newInstance().newTransformer();
              Source source = sqlxml.getSource(null);
              Result result = new StreamResult(System.out);
              identity.transform(source, result);

DOMResult から DOMSource を作成するには:

DOMSource domSource = new DOMSource(domResult.getNode());

XML 値が不完全または無効な場合、設定時に SQLException が発生したり、execute() が発生したときに例外が発生したりする可能性があります。 execute() が発生するか、SQLException がスローされる前に、すべてのストリームを閉じる必要があります。

SQLXML オブジェクトとの間での XML 値の読み取りと書き込みは、最大で 1 回行うことができます。 読み取り可能で読み取り不可の概念状態は、読み取り API の 1 つが値を返すか、例外をスローするかを決定します。 書き込み可能で書き込み不可の概念的な状態は、書き込み API の 1 つが値を設定するか、例外をスローするかを決定します。

free() またはいずれかの読み取り API が呼び出されると、状態は読み取り可能から読み取り不可に移行します。getBinaryStream()、getCharacterStream()、getSource()、getString()。 実装では、この場合、状態が書き込み不可に変更される場合もあります。

free() または書き込み API のいずれかが呼び出されると、状態は書き込み可能から書き込み不可に移行します。setBinaryStream()、setCharacterStream()、setResult()、setString() が呼び出されます。 実装では、この場合、状態が読み取り不可に変更される場合もあります。

JDBC ドライバーがデータ型をサポートしている場合は、 SQLXML インターフェイスのすべてのメソッドを完全に実装する必要があります。

1.6 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

プロパティ

名前 説明
BinaryStream

この SQL XML オブジェクトからバイナリ データを読み取るために使用できるストリームを返します。

CharacterStream

この SQL XML オブジェクトから文字データを読み取るために使用できるリーダーを返します。

Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 IJavaObject)
JniIdentityHashCode

ラップされたインスタンスの java.lang.System.identityHashCode() の値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniObjectReferenceControlBlock

SQL XML 型の JavaTM プログラミング言語でのマッピング。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
PeerReference

ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。

(継承元 IJavaPeerable)
String

このオブジェクトのデータを XML 文字列として返します。

メソッド

名前 説明
Disposed()

インスタンスが破棄されたときに呼び出されます。

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

このインスタンスへの未処理の参照がない場合は、 Dispose()を呼び出します。それ以外の場合は何も実行しません。

(継承元 IJavaPeerable)
Finalized()

インスタンスが終了したときに呼び出されます。

(継承元 IJavaPeerable)
Free()

このメソッドは、このオブジェクトを閉じ、保持しているリソースを解放します。

GetSource(Class)

この SQLXML インスタンスによって指定された XML 値を読み取るための Source を返します。

SetBinaryStream()

この SQLXML インスタンスが表す XML 値の書き込みに使用できるストリームを取得します。

SetCharacterStream()

この SQLXML インスタンスが表す XML 値の書き込みに使用するストリームを取得します。

SetJniIdentityHashCode(Int32)

JniIdentityHashCodeによって返される値を設定します。

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

SQL XML 型の JavaTM プログラミング言語でのマッピング。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

PeerReferenceによって返される値を設定します。

(継承元 IJavaPeerable)
SetResult(Class)

この SQLXML インスタンスによって指定された XML 値を設定するための結果を返します。

UnregisterFromRuntime()

ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 IJavaPeerable)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

SQL XML 型の JavaTM プログラミング言語でのマッピング。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象