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 値をデータベース テーブルの行に列値として格納する組み込み型です。 既定では、ドライバーは SQLXML オブジェクトを、データ自体ではなく XML データへの論理ポインターとして実装します。 SQLXML オブジェクトは、作成されたトランザクションの期間中有効です。

SQLXML インターフェイスには、XML 値に String、Reader/Writer、または Stream としてアクセスするためのメソッドが用意されています。 XML 値は、SOURCE を介してアクセスすることも、結果として設定することもできます。これは、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 変換を使用して、任意の Source を 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.sql.SQLXMLJava ドキュメント。

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

プロパティ

BinaryStream

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

CharacterStream

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

Handle

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

(継承元 IJavaObject)
JniIdentityHashCode

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

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniPeerMembers

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

(継承元 IJavaPeerable)
PeerReference

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

(継承元 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 値を設定するための Result を返します。

UnregisterFromRuntime()

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

(継承元 IJavaPeerable)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

適用対象