Share via


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 或 set 做為 Result 來存取,這些 API 會與 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 () 所指定的身分識別轉換,轉換為 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,或在執行 () 時可能發生例外狀況。 在執行 () 發生之前,必須先關閉所有資料流程,否則會擲回 SQLException。

在 SQLXML 物件中讀取和寫入 XML 值最多可以發生一次。 可讀取和無法讀取的概念狀態會判斷其中一個讀取 API 是否會傳回值或擲回例外狀況。 可寫入和不可寫入的概念狀態會判斷其中一個寫入 API 是否會設定值或擲回例外狀況。

狀態會從可讀取移至無法讀取一次 () 或呼叫任何讀取 API:getBinaryStream () 、getCharacterStream () 、getSource () 和 getString () 。 實作也會在發生這種情況時,將狀態變更為不可寫入。

狀態會從可寫入移至不可寫入一次 () 或呼叫任何寫入 API:setBinaryStream () 、setCharacterStream () 、setResult () 和 setString () 。 實作也可能會在發生這種情況時,將狀態變更為無法讀取。

如果 JDBC 驅動程式支援資料類型,則必須完整實作介面上 SQLXML 的所有方法。

已在 1.6 中新增。

java.sql.SQLXML JAVA 檔。

此頁面的部分是根據 原始碼專案所建立和共用的工作進行修改,並根據中所述的詞彙使用。

屬性

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)

傳回 Source,用於讀取這個 SQLXML 實例所指定的 XML 值。

SetBinaryStream()

擷取可用來寫入這個 SQLXML 實例所代表之 XML 值的資料流程。

SetCharacterStream()

擷取資料流程,以用來寫入這個 SQLXML 實例所代表的 XML 值。

SetJniIdentityHashCode(Int32)

設定 所 JniIdentityHashCode 傳回的值。

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

SQL XML 類型的 JAVATM 程式設計語言中的對應。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

設定 所 PeerReference 傳回的值。

(繼承來源 IJavaPeerable)
SetResult(Class)

傳回 Result,用於設定這個 SQLXML 實例所指定的 XML 值。

UnregisterFromRuntime()

取消註冊此實例,讓執行時間不會從未來的 Java.Interop.JniRuntime+JniValueManager.PeekValue 調用傳回它。

(繼承來源 IJavaPeerable)

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

SQL XML 類型的 JAVATM 程式設計語言中的對應。

GetJniTypeName(IJavaPeerable)

SQL XML 類型的 JAVATM 程式設計語言中的對應。

適用於