Интерфейс XMLStreamWriter
public interface XMLStreamWriter
Интерфейс XMLStreamWriter определяет способ записи XML. XMLStreamWriter не выполняет проверку корректности входных данных. Однако метод writeCharacters обязан экранировать &, < и >. Для значений атрибутов метод writeAttribute экранирует вышеуказанные символы, а также ", чтобы гарантировать, что все символы в контенте и значения атрибутов были правильно обработаны. Каждый NAMESPACE и ATTRIBUTE должен быть записан индивидуально.
Примечания:
| Метод |
isRepairingNamespaces == true |
isRepairingNamespaces == false | ||
|---|---|---|---|---|
| namespaceURI привязан | namespaceURI не привязан | namespaceURI привязан | namespaceURI не привязан | |
writeAttribute(namespaceURI, localName, value) | prefix:localName="значение" [1] | xmlns:{generated}="namespaceURI" {generated}:localName="значение" | prefix:localName="значение" [1] | XMLStreamException |
writeAttribute(prefix, namespaceURI, localName, value) | привязан к тому же префиксу: prefix:localName="значение" [1] привязан к разному префиксу: xmlns:{generated}="namespaceURI" {generated}:localName="значение" | xmlns:prefix="namespaceURI" prefix:localName="значение" [3] | привязан к тому же префиксу: prefix:localName="значение" [1][2] привязан к разному префиксу: XMLStreamException[2] | xmlns:prefix="namespaceURI" prefix:localName="значение" [2][5] |
writeStartElement(namespaceURI, localName)writeEmptyElement(namespaceURI, localName)
| <prefix:localName> [1] | <{generated}:localName xmlns:{generated}="namespaceURI"> | prefix:localName> [1] | XMLStreamException |
writeStartElement(prefix, localName, namespaceURI)writeEmptyElement(prefix, localName, namespaceURI)
| привязан к тому же префиксу:<prefix:localName> [1]привязан к разному префиксу: <{generated}:localName xmlns:{generated}="namespaceURI"> | <prefix:localName xmlns:prefix="namespaceURI"> [4] | привязан к тому же префиксу:<prefix:localName> [1]привязан к разному префиксу: XMLStreamException | <prefix:localName> |
- [1] если namespaceURI == URI по умолчанию, то префикс не записывается
- [2] если prefix == "" || null && namespaceURI == "", то префикс или объявление Namespace не генерируется или записывается
- [3] если prefix == "" || null, то префикс генерируется случайным образом
- [4] если prefix == "" || null, то он обрабатывается как Namespace по умолчанию и префикс не генерируется или записывается, объявление xmlns генерируется и записывается, если namespaceURI не привязан
- [5] если prefix == "" || null, то это рассматривается как некорректная попытка определить Namespace по умолчанию и выбрасывается XMLStreamException
- С:
- 1.6
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрыть этот писатель и освободить все ресурсы, связанные с писателем. |
void |
flush() |
Записать все кэшированные данные в основной механизм вывода. |
NamespaceContext |
getNamespaceContext() |
Возвращает текущий контекст пространства имен. |
String |
getPrefix |
Получает префикс, к которому привязана uri. |
Object |
getProperty |
Получить значение функции/свойства из базовой реализации |
void |
setDefaultNamespace |
Привязывает URI к пространству имен по умолчанию. Этот URI привязан в области текущей пары START_ELEMENT / END_ELEMENT. |
void |
setNamespaceContext |
Устанавливает текущий контекст пространства имен для привязки префикса и uri. |
void |
setPrefix |
Устанавливает префикс, к которому привязана uri. |
void |
writeAttribute |
Записывает атрибут в выходной поток без префикса. |
void |
writeAttribute |
Записывает атрибут в выходной поток |
void |
writeAttribute |
Записывает атрибут в выходной поток |
void |
writeCData |
Записывает раздел CData |
void |
writeCharacters |
Записать текст в выходной поток |
void |
writeCharacters |
Записать текст в выходной поток |
void |
writeComment |
Записывает XML комментарий с заключенными данными |
void |
writeDefaultNamespace |
Записать пространство имен по умолчанию в поток |
void |
writeDTD |
Записать раздел DTD. |
void |
writeEmptyElement |
Записывает пустой тег элемента в выходной поток |
void |
writeEmptyElement |
Записывает пустой тег элемента в выходной поток |
void |
writeEmptyElement |
Записывает пустой тег элемента в выходной поток |
void |
writeEndDocument() |
Закрывает все открытые теги и записывает соответствующие закрывающие теги. |
void |
writeEndElement() |
Записывает закрывающий тег в выходной поток, используя внутреннее состояние писателя для определения префикса и локального имени события. |
void |
writeEntityRef |
Записывает ссылку на сущность |
void |
writeNamespace |
Записывает пространство имен в выходной поток. Если аргумент prefix в этом методе является пустой строкой, "xmlns" или null, этот метод делегирует writeDefaultNamespace |
void |
writeProcessingInstruction |
Записывает инструкцию обработки |
void |
writeProcessingInstruction |
Записывает инструкцию обработки |
void |
writeStartDocument() |
Записать объявление XML. |
void |
writeStartDocument |
Записать объявление XML. |
void |
writeStartDocument |
Записать объявление XML. |
void |
writeStartElement |
Записывает открывающий тег в выходной поток. |
void |
writeStartElement |
Записывает открывающий тег в выходной поток |
void |
writeStartElement |
Записывает открывающий тег в выходной поток |
Подробности методов
writeStartElement
void writeStartElement(String localName) throws XMLStreamException
Записывает стартовый тэг в выходной поток. Все методы writeStartElement открывают новый контекст в внутреннем пространстве имён. Запись соответствующего EndElement закрывает этот контекст.
- Параметры:
-
localName- локальное имя тэга, не может быть null - Исключения:
-
XMLStreamException- если произошла ошибка
writeStartElement
void writeStartElement(String namespaceURI, String localName) throws XMLStreamException
Записывает стартовый тэг в выходной поток
- Параметры:
-
namespaceURI- namespaceURI префикса для использования, не может быть null -
localName- локальное имя тэга, не может быть null - Исключения:
-
XMLStreamException- если URI пространства имён не связан с префиксом и javax.xml.stream.isRepairingNamespaces не установлено в true
writeStartElement
void writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException
Записывает стартовый тэг в выходной поток
- Параметры:
-
localName- локальное имя тэга, не может быть null -
prefix- префикс тэга, не может быть null -
namespaceURI- uri для привязки префикса, не может быть null - Исключения:
-
XMLStreamException- если произошла ошибка
writeEmptyElement
void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException
Записывает тэг пустого элемента в выходной поток
- Параметры:
-
namespaceURI- uri для привязки тэга, не может быть null -
localName- локальное имя тэга, не может быть null - Исключения:
-
XMLStreamException- если URI пространства имён не связан с префиксом и javax.xml.stream.isRepairingNamespaces не установлено в true
writeEmptyElement
void writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException
Записывает тэг пустого элемента в выходной поток
- Параметры:
-
prefix- префикс тэга, не может быть null -
localName- локальное имя тэга, не может быть null -
namespaceURI- uri для привязки тэга, не может быть null - Исключения:
-
XMLStreamException- если произошла ошибка
writeEmptyElement
void writeEmptyElement(String localName) throws XMLStreamException
Записывает тэг пустого элемента в выходной поток
- Параметры:
-
localName- локальное имя тэга, не может быть null - Исключения:
-
XMLStreamException- если произошла ошибка
writeEndElement
void writeEndElement() throws XMLStreamException
Записывает закрывающий тэг в выходной поток, опираясь на внутреннее состояние записи для определения префикса и локального имени события.
- Исключения:
-
XMLStreamException- если произошла ошибка
writeEndDocument
void writeEndDocument() throws XMLStreamException
Закрывает все открытые стартовые тэги и записывает соответствующие закрывающие тэги.
- Исключения:
-
XMLStreamException- если произошла ошибка
close
void close() throws XMLStreamException
Закрывает этот записыватель и освобождает все ресурсы, связанные с ним. Это не должно закрывать базовый выходной поток.
- Исключения:
-
XMLStreamException- если произошла ошибка
flush
void flush() throws XMLStreamException
Записывает все кешированные данные в базовый механизм вывода.
- Исключения:
-
XMLStreamException- если произошла ошибка
writeAttribute
void writeAttribute(String localName, String value) throws XMLStreamException
Записывает атрибут в выходной поток без префикса.
- Параметры:
-
localName- локальное имя атрибута -
value- значение атрибута - Исключения:
-
IllegalStateException- если текущее состояние не позволяет записать атрибут -
XMLStreamException- если произошла ошибка
writeAttribute
void writeAttribute(String prefix, String namespaceURI, String localName, String value) throws XMLStreamException
Записывает атрибут в выходной поток
- Параметры:
-
prefix- префикс для данного атрибута -
namespaceURI- uri префикса для данного атрибута -
localName- локальное имя атрибута -
value- значение атрибута - Исключения:
-
IllegalStateException- если текущее состояние не позволяет записать атрибут -
XMLStreamException- если URI пространства имён не связан с префиксом и javax.xml.stream.isRepairingNamespaces не установлено в true
writeAttribute
void writeAttribute(String namespaceURI, String localName, String value) throws XMLStreamException
Записывает атрибут в выходной поток
- Параметры:
-
namespaceURI- uri префикса для данного атрибута -
localName- локальное имя атрибута -
value- значение атрибута - Исключения:
-
IllegalStateException- если текущее состояние не позволяет записать атрибут -
XMLStreamException- если URI пространства имён не связан с префиксом и javax.xml.stream.isRepairingNamespaces не установлено в true
writeNamespace
void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException
Записывает пространство имён в выходной поток. Если аргумент префикс этого метода пустая строка, "xmlns" или null, этот метод делегирует writeDefaultNamespace
- Параметры:
-
prefix- префикс для привязки этого пространства имён -
namespaceURI- uri для привязки префикса - Исключения:
-
IllegalStateException- если текущее состояние не позволяет записать пространство имён -
XMLStreamException- если произошла ошибка
writeDefaultNamespace
void writeDefaultNamespace(String namespaceURI) throws XMLStreamException
Записывает пространство имён по умолчанию в поток
- Параметры:
-
namespaceURI- uri для привязки пространства имён по умолчанию - Исключения:
-
IllegalStateException- если текущее состояние не позволяет записать пространство имён -
XMLStreamException- если произошла ошибка
writeComment
void writeComment(String data) throws XMLStreamException
Записывает xml комментарий с заключёнными данными
- Параметры:
-
data- данные, содержащиеся в комментарии, могут быть null - Исключения:
-
XMLStreamException- если произошла ошибка
writeProcessingInstruction
void writeProcessingInstruction(String target) throws XMLStreamException
Записывает инструкцию обработки
- Параметры:
-
target- целевой объект инструкции обработки, не может быть null - Исключения:
-
XMLStreamException- если произошла ошибка
writeProcessingInstruction
void writeProcessingInstruction(String target, String data) throws XMLStreamException
Записывает инструкцию обработки
- Параметры:
-
target- целевой объект инструкции обработки, не может быть null -
data- данные, содержащиеся в инструкции обработки, не могут быть null - Исключения:
-
XMLStreamException- если произошла ошибка
writeCData
void writeCData(String data) throws XMLStreamException
Записывает раздел CData
- Параметры:
-
data- данные, содержащиеся в разделе CData, не могут быть null - Исключения:
-
XMLStreamException- если произошла ошибка
writeDTD
void writeDTD(String dtd) throws XMLStreamException
Записывает раздел DTD. Эта строка представляет собой полное производство doctypedecl из спецификации XML 1.0.
- Параметры:
-
dtd- записываемый DTD - Исключения:
-
XMLStreamException- если произошла ошибка
writeEntityRef
void writeEntityRef(String name) throws XMLStreamException
Записывает ссылку на сущность
- Параметры:
-
name- имя сущности - Исключения:
-
XMLStreamException- если произошла ошибка
writeStartDocument
void writeStartDocument() throws XMLStreamException
Записывает XML объявление. По умолчанию версия XML 1.0, кодировка utf-8
- Исключения:
-
XMLStreamException- если произошла ошибка
writeStartDocument
void writeStartDocument(String version) throws XMLStreamException
Записывает XML объявление. По умолчанию версия XML 1.0
- Параметры:
-
version- версия xml документа - Исключения:
-
XMLStreamException- если произошла ошибка
writeStartDocument
void writeStartDocument(String encoding, String version) throws XMLStreamException
Запишите объявление XML. Обратите внимание, что параметр кодировки не задаёт фактическую кодировку базового вывода. Это необходимо установить при создании экземпляра XMLStreamWriter с помощью XMLOutputFactory
- Parameters:
-
encoding- кодировка объявления xml -
version- версия документа xml - Throws:
-
XMLStreamException- если заданная кодировка не соответствует кодировке базового потока
writeCharacters
void writeCharacters(String text) throws XMLStreamException
Записать текст в выходной поток
- Parameters:
-
text- значение для записи - Throws:
-
XMLStreamException- если произошла ошибка
writeCharacters
void writeCharacters(char[] text, int start, int len) throws XMLStreamException
Записать текст в выходной поток
- Parameters:
-
text- значение для записи -
start- начальная позиция в массиве -
len- количество символов для записи - Throws:
-
XMLStreamException- если произошла ошибка
getPrefix
String getPrefix(String uri) throws XMLStreamException
Получает префикс, связанный с URI.
- Parameters:
-
uri- URI, связанный с префиксом - Returns:
- префикс или null
- Throws:
-
XMLStreamException- если произошла ошибка
setPrefix
void setPrefix(String prefix, String uri) throws XMLStreamException
Устанавливает префикс, связанный с URI. Этот префикс связан в рамках текущей пары START_ELEMENT / END_ELEMENT. Если этот метод вызывается до записи START_ELEMENT, префикс связывается в корневом объеме.
- Parameters:
-
prefix- префикс для связи с URI, не может быть null -
uri- URI для связи с префиксом, может быть null - Throws:
-
XMLStreamException- если произошла ошибка
setDefaultNamespace
void setDefaultNamespace(String uri) throws XMLStreamException
Связывает URI с пространством имён по умолчанию. Этот URI связан в рамках текущей пары START_ELEMENT / END_ELEMENT. Если этот метод вызывается до записи START_ELEMENT, URI связывается в корневом объеме.
- Parameters:
-
uri- URI для связи с пространством имён по умолчанию, может быть null - Throws:
-
XMLStreamException- если произошла ошибка
setNamespaceContext
void setNamespaceContext(NamespaceContext context) throws XMLStreamException
Устанавливает текущий контекст пространства имён для связывания префиксов и URI. Этот контекст становится корневым контекстом пространства имён для записи и заменит текущий корневой контекст пространства имён. Последующие вызовы setPrefix и setDefaultNamespace будут связывать пространства имён, используя переданный в метод контекст в качестве корневого контекста для разрешения пространств имён. Этот метод может быть вызван только один раз в начале документа. Он не вызывает объявления пространств имён. Если в контексте пространства имён найдено соответствие URI имени пространства, оно рассматривается как объявленное, и префикс может использоваться StreamWriter.
- Parameters:
-
context- контекст пространства имён для использования данным писателем, не может быть null - Throws:
-
XMLStreamException- если произошла ошибка
getNamespaceContext
NamespaceContext getNamespaceContext()
Возвращает текущий контекст пространства имён.
- Returns:
- текущий NamespaceContext
getProperty
Object getProperty(String name) throws IllegalArgumentException
Получить значение свойства/функции из базовой реализации
- Parameters:
-
name- имя свойства, не может быть null - Returns:
- Значение свойства
- Throws:
-
IllegalArgumentException- если свойство не поддерживается -
NullPointerException- если имя null
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.xml/javax/xml/stream/XMLStreamWriter.html