ISQLXML Интерфейс

Определение

Сопоставление на языке программирования JavaTM для типа XML SQL.

[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
Атрибуты
Реализации

Комментарии

Сопоставление на языке программирования JavaTM для типа XML SQL. XML — это встроенный тип, который сохраняет XML-значение в виде значения столбца в строке таблицы базы данных. По умолчанию драйверы реализуют объект SQLXML в качестве логического указателя на XML-данные, а не сами данные. Объект SQLXML действителен в течение срока действия транзакции, в которой она была создана.

Интерфейс SQLXML предоставляет методы для доступа к xml-значению в виде строки, средства чтения или записи или потока. Xml-значение также можно получить через источник или задать в качестве результата, которые используются с API-интерфейсами синтаксического анализа XML, такими как DOM, SAX и StAX, а также с преобразованиями XSLT и вычислениями XPath.

Методы в интерфейсах ResultSet, CallableStatement и PreparedStatement, такие как getSQLXML, позволяют программисту получить доступ к XML-значению. Кроме того, этот интерфейс имеет методы обновления XML-значения.

XML-значение экземпляра SQLXML может быть получено в виде двоичного потока с помощью

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

Например, чтобы проанализировать XML-значение с помощью средства синтаксического анализа DOM:

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

или для синтаксического анализа XML-значения с помощью средства синтаксического анализа SAX в обработчике:

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

или для синтаксического анализа XML-значения с помощью средства синтаксического анализа StAX:

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

или для выполнения преобразований XSLT в XML-значении с помощью XSLT в выходных данных xsltFile в файл 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);

или для вычисления выражения XPath в XML-значении:

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():

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

Чтобы создать DOMSource из DOMResult, выполните приведенные действия.

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

Неполные или недопустимые XML-значения могут вызвать SQLException, если задано или исключение может возникать при выполнении(). Все потоки должны быть закрыты перед выполнением() или возникает исключение SQLException.

Чтение и запись XML-значений в объект SQLXML может выполняться не более одного раза. Концептуальные состояния доступных для чтения и недоступных для чтения определяют, будет ли один из API чтения возвращать значение или вызывать исключение. Концептуальные состояния записываемого и не записываемого кода определяют, будет ли один из API записи задать значение или вызвать исключение.

Состояние перемещается от доступных для чтения до недоступных для чтения после free() или любого из API чтения вызываются: getBinaryStream(), getCharacterStream(), getSource(), getString() и getString(). Реализации также могут изменить состояние на недоступную для записи при возникновении этого события.

Состояние перемещается из записываемого в недоступную запись после free() или любого из API записи вызывается: setBinaryStream(), setCharacterStream(), setResult() и setString(). Реализации также могут изменить состояние на недоступное для чтения, когда это происходит.

Все методы интерфейса SQLXML должны быть полностью реализованы, если драйвер JDBC поддерживает тип данных.

Добавлено в версии 1.6.

Java документации по java.sql.SQLXML.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Свойства

Имя Описание
BinaryStream

Возвращает поток, который можно использовать для чтения двоичных данных из этого объекта SQL XML .

CharacterStream

Возвращает средство чтения, которое можно использовать для чтения символьных данных из этого объекта SQL XML .

Handle

Возвращает значение JNI базового объекта Android.

(Унаследовано от 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)

Возвращает источник для чтения ЗНАЧЕНИЯ XML, указанного этим экземпляром SQLXML.

SetBinaryStream()

Извлекает поток, который можно использовать для записи XML-значения, которое представляет этот экземпляр SQLXML.

SetCharacterStream()

Извлекает поток, используемый для записи XML-значения, которое представляет этот экземпляр SQLXML.

SetJniIdentityHashCode(Int32)

Задайте значение, возвращаемое JniIdentityHashCode.

(Унаследовано от IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Сопоставление на языке программирования JavaTM для типа XML SQL.

(Унаследовано от IJavaPeerable)
SetPeerReference(JniObjectReference)

Задайте значение, возвращаемое PeerReference.

(Унаследовано от IJavaPeerable)
SetResult(Class)

Возвращает результат для задания значения XML, указанного этим экземпляром SQLXML.

UnregisterFromRuntime()

Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала ее из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов.

(Унаследовано от IJavaPeerable)

Методы расширения

Имя Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Сопоставление на языке программирования JavaTM для типа XML SQL.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к