Spec-Zone.ru › OpenJDK 27

Класс XMLOutputFactory

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

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

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

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

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

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

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

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

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

См. также:
  • 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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удален в одной из будущих версий.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает значение хеш-кода для этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

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, 2026, 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.

Spec-Zone.ru

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