Sprache

ISQLXML Schnittstelle

Definition

Die Zuordnung in der JavaTM-Programmiersprache für den SQL-XML-Typ.

[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
Attribute
Implementiert

Hinweise

Die Zuordnung in der JavaTM-Programmiersprache für den SQL-XML-Typ. XML ist ein integrierter Typ, der einen XML-Wert als Spaltenwert in einer Zeile einer Datenbanktabelle speichert. Standardmäßig implementieren Treiber ein SQLXML-Objekt als logischer Zeiger auf die XML-Daten anstelle der Daten selbst. Ein SQLXML-Objekt ist für die Dauer der Transaktion gültig, in der sie erstellt wurde.

Die SQLXML-Schnittstelle stellt Methoden für den Zugriff auf den XML-Wert als Zeichenfolge, Reader oder Writer oder als Stream bereit. Auf den XML-Wert kann auch über eine Quelle zugegriffen oder als Ergebnis festgelegt werden, die mit XML-Parser-APIs wie DOM, SAX und StAX sowie mit XSLT-Transformationen und XPath-Auswertungen verwendet werden.

Methoden in den Schnittstellen ResultSet, CallableStatement und PreparedStatement, z. B. getSQLXML, ermöglichen einem Programmierer den Zugriff auf einen XML-Wert. Darüber hinaus verfügt diese Schnittstelle über Methoden zum Aktualisieren eines XML-Werts.

Der XML-Wert der SQLXML-Instanz kann als BinaryStream abgerufen werden.

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

Um beispielsweise einen XML-Wert mit einem DOM-Parser zu analysieren:

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

oder um einen XML-Wert mit einem SAX-Parser in Ihren Handler zu analysieren:

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

oder um einen XML-Wert mit einem StAX-Parser zu analysieren:

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

Da Datenbanken möglicherweise eine optimierte Darstellung für den XML-Code verwenden können, kann der Zugriff auf den Wert über getSource() und setResult() zu einer verbesserten Verarbeitungsleistung führen, ohne in eine Datenstromdarstellung zu serialisieren und den XML-Code zu analysieren.

So rufen Sie beispielsweise einen DOM-Dokumentknoten ab:

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

oder um den Wert auf einen DOM-Dokumentknoten auf myNode festzulegen:

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

oder, um SAX-Ereignisse an Ihren Handler zu senden:

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

oder, um den Ergebniswert aus SAX-Ereignissen festzulegen:

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

oder zum Abrufen von StAX-Ereignissen:

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

oder, um den Ergebniswert aus StAX-Ereignissen festzulegen:

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

oder zum Ausführen von XSLT-Transformationen für den XML-Wert mithilfe der XSLT in xsltFile-Ausgabe in "file 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);

oder um einen XPath-Ausdruck für den XML-Wert auszuwerten:

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);

So legen Sie den XML-Wert als Ergebnis einer XSLT-Transformation fest:

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);

Jede Quelle kann mithilfe der durch Aufrufen von newTransformer() angegebenen Identitätstransformation in ein Ergebnis transformiert werden:

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);

So schreiben Sie den Inhalt einer Quelle in die Standardausgabe:

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

So erstellen Sie eine DOMSource aus einem DOMResult:

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

Unvollständige oder ungültige XML-Werte können eine SQLException verursachen, wenn festgelegt oder die Ausnahme auftreten kann, wenn execute() auftritt. Alle Datenströme müssen geschlossen werden, bevor execute() eintritt, oder eine SQLException wird ausgelöst.

Das Lesen und Schreiben von XML-Werten in oder aus einem SQLXML-Objekt kann höchstens einmal erfolgen. Die konzeptionellen Zustände der lesbaren und nicht lesbaren bestimmen, ob eine der Lese-APIs einen Wert zurückgibt oder eine Ausnahme auslöst. Die konzeptionellen Zustände schreibbar und nicht schreibbar bestimmen, ob eine der schreibbaren APIs einen Wert festlegt oder eine Ausnahme auslöst.

Der Zustand wechselt von lesbar zu nicht lesbar, sobald free() oder einer der Lese-APIs aufgerufen wird: getBinaryStream(), getCharacterStream(), getSource() und getString(). Implementierungen können auch den Zustand ändern, soweit dies auftritt, nicht schreibbar.

Der Zustand wechselt von schreibbar zu nicht schreibbar, sobald free() oder einer der schreibbaren APIs aufgerufen wird: setBinaryStream(), setCharacterStream(), setResult() und setString(). Implementierungen können auch den Zustand ändern, soweit dies auftritt, nicht lesbar.

Alle Methoden auf der SQLXML Schnittstelle müssen vollständig implementiert werden, wenn der DRIVER den Datentyp unterstützt.

In 1.6 hinzugefügt.

Java Dokumentation für java.sql.SQLXML.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Eigenschaften

Name Beschreibung
BinaryStream

Gibt einen Datenstrom zurück, der zum Lesen von Binärdaten aus diesem SQL-Objekt XML verwendet werden kann.

CharacterStream

Gibt einen Leser zurück, der zum Lesen von Zeichendaten aus diesem SQL-Objekt XML verwendet werden kann.

Handle

Ruft den JNI-Wert des zugrunde liegenden Android-Objekts ab.

(Geerbt von IJavaObject)
JniIdentityHashCode

Gibt den Wert java.lang.System.identityHashCode() für die umbrochene Instanz zurück.

(Geerbt von IJavaPeerable)
JniManagedPeerState

Status des verwalteten Peers.

(Geerbt von IJavaPeerable)
JniObjectReferenceControlBlock

Die Zuordnung in der JavaTM-Programmiersprache für den SQL-XML-Typ.

(Geerbt von IJavaPeerable)
JniPeerMembers

Mitgliedszugriff und Aufrufunterstützung.

(Geerbt von IJavaPeerable)
PeerReference

Gibt eine JniObjectReference der umbrochenen Java Objektinstanz zurück.

(Geerbt von IJavaPeerable)
String

Gibt die Daten dieses Objekts als XML-Zeichenfolge zurück.

Methoden

Name Beschreibung
Disposed()

Wird aufgerufen, wenn die Instanz verworfen wurde.

(Geerbt von IJavaPeerable)
DisposeUnlessReferenced()

Wenn keine offenen Verweise auf diese Instanz vorhanden sind, wird nichts aufgerufen Dispose(). Andernfalls wird nichts ausgeführt.

(Geerbt von IJavaPeerable)
Finalized()

Wird aufgerufen, wenn die Instanz abgeschlossen wurde.

(Geerbt von IJavaPeerable)
Free()

Diese Methode schließt dieses Objekt und gibt die darin gespeicherten Ressourcen frei.

GetSource(Class)

Gibt eine Quelle zum Lesen des XML-Werts zurück, der von dieser SQLXML-Instanz festgelegt ist.

SetBinaryStream()

Ruft einen Datenstrom ab, der zum Schreiben des XML-Werts verwendet werden kann, den diese SQLXML-Instanz darstellt.

SetCharacterStream()

Ruft einen Datenstrom ab, der zum Schreiben des XML-Werts verwendet wird, den diese SQLXML-Instanz darstellt.

SetJniIdentityHashCode(Int32)

Legen Sie den von JniIdentityHashCode.

(Geerbt von IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Die Zuordnung in der JavaTM-Programmiersprache für den SQL-XML-Typ.

(Geerbt von IJavaPeerable)
SetPeerReference(JniObjectReference)

Legen Sie den von PeerReference.

(Geerbt von IJavaPeerable)
SetResult(Class)

Gibt ein Ergebnis zum Festlegen des XML-Werts zurück, der von dieser SQLXML-Instanz festgelegt wird.

UnregisterFromRuntime()

Heben Sie die Registrierung dieser Instanz auf, damit die Laufzeit sie nicht aus zukünftigen Java.Interop.JniRuntime+JniValueManager.PeekValue Aufrufen zurückgibt.

(Geerbt von IJavaPeerable)

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Die Zuordnung in der JavaTM-Programmiersprache für den SQL-XML-Typ.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: