ISQLXML インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
プロパティ
| 名前 | 説明 |
|---|---|
| BinaryStream |
この SQL |
| CharacterStream |
この SQL |
| Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
| JniIdentityHashCode |
ラップされたインスタンスの |
| JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
| JniObjectReferenceControlBlock |
SQL XML 型の JavaTM プログラミング言語でのマッピング。 (継承元 IJavaPeerable) |
| JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
| PeerReference |
ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。 (継承元 IJavaPeerable) |
| String |
このオブジェクトのデータを XML 文字列として返します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
| DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 |
| Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
| Free() |
このメソッドは、このオブジェクトを閉じ、保持しているリソースを解放します。 |
| GetSource(Class) |
この SQLXML インスタンスによって指定された XML 値を読み取るための Source を返します。 |
| SetBinaryStream() |
この SQLXML インスタンスが表す XML 値の書き込みに使用できるストリームを取得します。 |
| SetCharacterStream() |
この SQLXML インスタンスが表す XML 値の書き込みに使用するストリームを取得します。 |
| SetJniIdentityHashCode(Int32) |
|
| SetJniManagedPeerState(JniManagedPeerStates) |
SQL XML 型の JavaTM プログラミング言語でのマッピング。 (継承元 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
|
| SetResult(Class) |
この SQLXML インスタンスによって指定された XML 値を設定するための結果を返します。 |
| UnregisterFromRuntime() |
ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
SQL XML 型の JavaTM プログラミング言語でのマッピング。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|