この JDBC ドライバーがサポートする JDBC 4.0 API には、java.sql.SQLXML インターフェイスが導入されています。 SQLXML インターフェイスには、XML データを操作するための各種のメソッドが定義されています。 SQLXML データ型は SQL Serverxml データ型にマップされます。
SQLXML インターフェイスには、XML 値に String、Reader/Writer、または Stream としてアクセスするためのメソッドが用意されています。 XML 値は Source を介してアクセスしたり、Result として設定したりすることもでき、これらを XSLT 変換や XPath のほか、Document Object Model (DOM)、Simple API for XML (SAX)、Streaming API for XML (StAX) などの XML パーサー API と組み合わせて利用することが可能です。
解説
次の表で、SQLXML インターフェイスに定義されている各メソッドについて説明します。
| メソッドの構文 | メソッドの説明 |
|---|---|
| void free() | このメソッドは、SQLXML オブジェクトと、それが占有していたリソースを解放します。 |
| InputStream getBinaryStream() | SQLXML からデータを読み取る入力ストリームを返します。 |
| Reader getCharacterStream() | XML データを、java.io.Reader オブジェクトまたは文字のストリームとして返します。 |
| T は Source T getSource(Class<T> sourceClass) を拡張します | この SQLXML オブジェクトによって指定された XML 値を読み取るための Source を返します。 注: getSource メソッドでは、javax.xml.transform.dom.DOMSource、javax.xml.transform.sax.SAXSource、javax.xml.transform.stax.StAXSource、java.io.InputStream の各ソースがサポートされます。 |
| String getString() | この SQLXML オブジェクトによって指定された XML 値の文字列表現を返します。 |
| OutputStream setBinaryStream() | この SQLXML オブジェクトが表す XML 値の書き込みに使用できるストリームを取得します。 |
| Writer setCharacterStream() | この SQLXML オブジェクトが表す XML 値の書き込みに使用されるストリームを返します。 |
| T は Result T setResult(Class<T> resultClass) を拡張します | この SQLXML オブジェクトによって指定された XML 値を設定するための Result を返します。 注: setResult メソッドは、javax.xml.transform.dom.DOMResult、javax.xml.transform.sax.SAXResult、javax.xml.transform.stax.StaxResult、java.io.OutputStream の各ソースをサポートします。 |
| void setString(String 値) | この SQLXML オブジェクトによって指定された XML 値を、指定された String 表現に設定します。 |
アプリケーションから SQLXML オブジェクトを介して XML 値の読み取りと書き込みを行うことができるのは 1 回だけです。
SQLXML オブジェクトは free() メソッドが呼び出された時点で無効になり、読み取りも書き込みもできなくなります。 同じ SQLXML オブジェクトの (free() 以外の) メソッドを呼び出そうとすると、例外がスローされます。
アプリケーションから getSource、getCharacterStream、getBinaryStream、getString のいずれかの getter メソッドが呼び出されると、SQLXML オブジェクトは読み取りも書き込みもできない状態となります。
アプリケーションから setResult、setCharacterStream、setBinaryStream、setString のいずれかの setter メソッドが呼び出されると、SQLXML オブジェクトは書き込みも読み取りもできない状態となります。