Spec-Zone.ru › OpenJDK 25

Класс XMLOutputFactory

java.lang.Object
javax.xml.stream.XMLOutputFactory
public abstract class XMLOutputFactory extends Object
Определяет абстрактную реализацию фабрики для получения XMLEventWriters и XMLStreamWriters. В следующей таблице перечислены стандартные свойства данной спецификации. Уровень поддержки каждого свойства зависит от реализации. Требуемый уровень поддержки описан в столбце «Обязательное требование».
Параметры конфигурации
Имя свойства Поведение Тип возвращаемого значения Значение по умолчанию Обязательное требование
javax.xml.stream.isRepairingNamespaces устанавливает префиксы по умолчанию при выводе Boolean False Да

В следующих абзацах описан алгоритм исправления пространств имён и префиксов:

Свойство можно задать следующей строкой кода: setProperty("javax.xml.stream.isRepairingNamespaces", Boolean.TRUE);

Это свойство указывает, что писатель объявляет пространства имён по умолчанию. Значение по умолчанию — false.

Если для писателя включено свойство isRepairingNamespaces, он создаст объявление пространства имён для текущего StartElement для любого атрибута, у которого в текущей области видимости ещё нет объявления пространства имён. Если у StartElement есть URI, но не указан префикс, будет назначен префикс; если префикс не объявлен в родительском элементе текущего StartElement, он будет объявлен в текущем StartElement. Если пространство имён по умолчанию связано и находится в области видимости, а пространство имён по умолчанию совпадает с URI атрибута или QName StartElement, префикс назначен не будет.

Если у имени элемента или атрибута есть префикс, но он не связан ни с одним URI пространства имён, при сериализации префикс будет удалён.

Если имена элементов и/или атрибутов в одном начальном теге или теге пустого элемента связаны с разными URI пространств имён и используют один и тот же префикс, элемент или первый встреченный атрибут сохранит исходный префикс, а префиксы последующих атрибутов будут заменены новым префиксом, связанным с URI пространств имён этих атрибутов.

Если имя элемента или атрибута использует префикс, связанный с URI, отличным от URI, унаследованного из контекста пространства имён родительского элемента, и в контексте текущего элемента нет объявления пространства имён, такое объявление пространства имён будет добавлено.

Если имя элемента или атрибута связано с префиксом и существует объявление пространства имён, связывающее этот префикс с другим URI, объявление пространства имён либо удаляется, если правильное соответствие унаследовано из родительского контекста этого элемента, либо изменяется так, чтобы указывать на URI пространства имён элемента или атрибута, использующего этот префикс.

Начиная с:
1.6
См. также:
  • XMLInputFactory
  • XMLEventWriter
  • XMLStreamWriter

Краткое описание полей

Модификатор и тип Поле Описание
static final String IS_REPAIRING_NAMESPACES
Свойство для настройки установки префиксов по умолчанию при выводе

Краткое описание конструкторов

XMLOutputFactory()
Модификатор Конструктор Описание
protected
Защищённый конструктор, предотвращающий создание экземпляров.

Краткое описание методов

Модификатор и тип Метод Описание
abstract XMLEventWriter createXMLEventWriter(OutputStream stream)
Создаёт новый XMLEventWriter, выполняющий запись в поток
abstract XMLEventWriter createXMLEventWriter(OutputStream stream, String encoding)
Создаёт новый XMLEventWriter, выполняющий запись в поток
abstract XMLEventWriter createXMLEventWriter(Writer stream)
Создаёт новый XMLEventWriter, выполняющий запись в объект записи
abstract XMLEventWriter createXMLEventWriter(Result result)
Создаёт новый XMLEventWriter, выполняющий запись в результат JAXP.
abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream)
Создаёт новый XMLStreamWriter, выполняющий запись в поток
abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream, String encoding)
Создаёт новый XMLStreamWriter, выполняющий запись в поток
abstract XMLStreamWriter createXMLStreamWriter(Writer stream)
Создаёт новый XMLStreamWriter, выполняющий запись в объект записи
abstract XMLStreamWriter createXMLStreamWriter(Result result)
Создаёт новый XMLStreamWriter, выполняющий запись в результат JAXP.
abstract Object getProperty(String name)
Получает функцию или свойство базовой реализации
abstract boolean isPropertySupported(String name)
Запрашивает набор свойств, поддерживаемых этой фабрикой.
static XMLOutputFactory newDefaultFactory()
Создаёт новый экземпляр встроенной системной реализации XMLOutputFactory.
static XMLOutputFactory newFactory()
Создаёт новый экземпляр фабрики.
static XMLOutputFactory newFactory(String factoryId, ClassLoader classLoader)
Создаёт новый экземпляр фабрики.
static XMLOutputFactory newInstance()
Создаёт новый экземпляр фабрики точно таким же образом, как метод newFactory().
static XMLInputFactory newInstance(String factoryId, ClassLoader classLoader)
Устарел.
Этот метод устарел, поскольку возвращает экземпляр XMLInputFactory, относящийся к неправильному классу.
abstract void setProperty(String name, Object value)
Позволяет задавать определённые функции или свойства базовой реализации.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

IS_REPAIRING_NAMESPACES

public static final String IS_REPAIRING_NAMESPACES
Свойство для настройки установки префиксов по умолчанию при выводе
См. также:
  • Значения константных полей

Подробное описание конструкторов

XMLOutputFactory

protected XMLOutputFactory()
Защищённый конструктор, предотвращающий создание экземпляров. Вместо него используйте newFactory().

Подробное описание методов

newDefaultFactory

public static XMLOutputFactory newDefaultFactory()
Создаёт новый экземпляр встроенной системной реализации XMLOutputFactory.
Возвращает:
Новый экземпляр встроенной системной реализации XMLOutputFactory.
Начиная с:
9

newInstance

public static XMLOutputFactory newInstance() throws FactoryConfigurationError
Создаёт новый экземпляр фабрики точно таким же образом, как метод newFactory().
Возвращает:
экземпляр XMLOutputFactory
Выбрасывает:
FactoryConfigurationError — если не удаётся загрузить экземпляр этой фабрики

newFactory

public static XMLOutputFactory newFactory() throws FactoryConfigurationError
Создаёт новый экземпляр фабрики. Этот метод использует механизм поиска JAXP для определения класса реализации XMLOutputFactory, который необходимо загрузить.

Получив ссылку на XMLOutputFactory, приложение может использовать фабрику для настройки и получения экземпляров потоков.

Возвращает:
экземпляр XMLOutputFactory
Выбрасывает:
FactoryConfigurationError — в случае ошибки конфигурации службы либо если реализация недоступна или не может быть создана.

newInstance

@Deprecated(since="1.7") public static XMLInputFactory newInstance(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
Устарел.
Этот метод устарел, поскольку возвращает экземпляр XMLInputFactory, относящийся к неправильному классу. Вместо него используйте новый метод newFactory(java.lang.String, java.lang.ClassLoader).
Создаёт новый экземпляр фабрики.
Параметры:
factoryId — имя искомой фабрики, совпадающее с именем свойства
classLoader — используемый загрузчик классов
Возвращает:
реализацию фабрики
Выбрасывает:
FactoryConfigurationError — если не удаётся загрузить экземпляр этой фабрики

newFactory

public static XMLOutputFactory newFactory(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
Создаёт новый экземпляр фабрики. Если аргумент classLoader равен null, используется ContextClassLoader.

Для определения класса реализации XMLOutputFactory, который необходимо загрузить, этот метод выполняет следующий упорядоченный поиск:

  • Использует значение системного свойства, заданного factoryId.
  • Использует значение свойства factoryId, заданного в файле конфигурации (по умолчанию — jaxp.properties). Если файл существует и в нём задано свойство factoryId, его значение будет использовано в качестве класса реализации.

  • Если factoryId равно "javax.xml.stream.XMLOutputFactory", используется механизм загрузки поставщиков служб, определённый классом ServiceLoader, чтобы попытаться найти и загрузить реализацию службы с помощью указанного ClassLoader. Если classLoader равно null, используется механизм загрузки по умолчанию: то есть механизм загрузки поставщиков служб использует загрузчик классов контекста текущего потока для попытки загрузить службу. Если загрузчик классов контекста равен null, используется системный загрузчик классов.

  • В противном случае выбрасывается FactoryConfigurationError.

Примечание API:
Параметр factoryId, определённый здесь, не согласуется с параметрами других фабрик JAXP, где первый параметр — полное имя класса фабрики, предоставляющего реализацию фабрики.

Обратите внимание, что этот новый метод заменяет устаревший метод newInstance(String factoryId, ClassLoader classLoader). Исходный метод был неверно определён и возвращал XMLInputFactory.

Параметры:
factoryId — имя искомой фабрики, совпадающее с именем свойства
classLoader — используемый загрузчик классов
Возвращает:
реализацию фабрики
Выбрасывает:
FactoryConfigurationError — в случае ошибки конфигурации службы либо если реализация недоступна или не может быть создана.

createXMLStreamWriter

public abstract XMLStreamWriter createXMLStreamWriter(Writer stream) throws XMLStreamException
Создаёт новый XMLStreamWriter, выполняющий запись в объект записи
Параметры:
stream — объект записи, в который выполняется запись
Возвращает:
экземпляр XMLStreamWriter
Выбрасывает:
XMLStreamException — если произошла ошибка

createXMLStreamWriter

public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream) throws XMLStreamException
Создаёт новый XMLStreamWriter, выполняющий запись в поток
Параметры:
stream — поток, в который выполняется запись
Возвращает:
экземпляр XMLStreamWriter
Выбрасывает:
XMLStreamException — если произошла ошибка

createXMLStreamWriter

public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream, String encoding) throws XMLStreamException
Создаёт новый XMLStreamWriter, выполняющий запись в поток
Параметры:
stream — поток, в который выполняется запись
encoding — используемая кодировка
Возвращает:
экземпляр XMLStreamWriter
Выбрасывает:
XMLStreamException — если произошла ошибка

createXMLStreamWriter

public abstract XMLStreamWriter createXMLStreamWriter(Result result) throws XMLStreamException
Создаёт новый XMLStreamWriter, выполняющий запись в результат JAXP. Этот метод является необязательным.
Параметры:
result — результат, в который выполняется запись
Возвращает:
экземпляр XMLStreamWriter
Выбрасывает:
UnsupportedOperationException — если этот метод не поддерживается данной фабрикой XMLOutputFactory
XMLStreamException — если произошла ошибка

createXMLEventWriter

public abstract XMLEventWriter createXMLEventWriter(Result result) throws XMLStreamException
Создаёт новый XMLEventWriter, выполняющий запись в результат JAXP. Этот метод является необязательным.
Параметры:
result — результат, в который выполняется запись
Возвращает:
экземпляр XMLEventWriter
Выбрасывает:
UnsupportedOperationException — если этот метод не поддерживается данной фабрикой XMLOutputFactory
XMLStreamException — если произошла ошибка

createXMLEventWriter

public abstract XMLEventWriter createXMLEventWriter(OutputStream stream) throws XMLStreamException
Создаёт новый XMLEventWriter, выполняющий запись в поток
Параметры:
stream — поток, в который выполняется запись
Возвращает:
экземпляр XMLEventWriter
Выбрасывает:
XMLStreamException — если произошла ошибка

createXMLEventWriter

public abstract XMLEventWriter createXMLEventWriter(OutputStream stream, String encoding) throws XMLStreamException
Создаёт новый XMLEventWriter, выполняющий запись в поток
Параметры:
stream — поток, в который выполняется запись
encoding — используемая кодировка
Возвращает:
экземпляр XMLEventWriter
Выбрасывает:
XMLStreamException — если произошла ошибка

createXMLEventWriter

public abstract XMLEventWriter createXMLEventWriter(Writer stream) throws XMLStreamException
Создаёт новый XMLEventWriter, выполняющий запись в объект записи
Параметры:
stream — поток, в который выполняется запись
Возвращает:
экземпляр XMLEventWriter
Выбрасывает:
XMLStreamException — если произошла ошибка

setProperty

public abstract void setProperty(String name, Object value) throws IllegalArgumentException
Позволяет задавать определённые функции или свойства базовой реализации.
Параметры:
name — имя свойства
value — значение свойства
Выбрасывает:
IllegalArgumentException — если свойство не поддерживается

getProperty

public abstract Object getProperty(String name) throws IllegalArgumentException
Получает функцию или свойство базовой реализации
Параметры:
name — имя свойства
Возвращает:
значение свойства
Выбрасывает:
IllegalArgumentException — если свойство не поддерживается

isPropertySupported

public abstract boolean isPropertySupported(String name)
Запрашивает набор свойств, поддерживаемых этой фабрикой.
Параметры:
name — имя свойства (не может быть null)
Возвращает:
true, если свойство поддерживается, и false в противном случае

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.xml/javax/xml/stream/XMLOutputFactory.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API