Spec-Zone.ru › OpenJDK 17

Класс 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", new Boolean(true|false));

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

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

Если имя элемента или атрибута имеет префикс, но не привязано к никакому 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)
Позволяет пользователю установить определённые функции/свойства в базовой реализации.

Методы, объявленные в классе java.lang.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()
Создает новый экземпляр встроенной реализации по умолчанию системы.
Возвращает:
Новый экземпляр встроенной реализации по умолчанию системы.
С:
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 - classLoader для использования
Возвращает:
реализация фабрики
Бросает:
FactoryConfigurationError - если экземпляр этой фабрики не может быть загружен

newFactory

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

Этот метод использует следующую упорядоченную процедуру поиска для определения класса реализации XMLOutputFactory для загрузки:

  • Используйте значение системной переменной, идентифицированной по factoryId.
  • Используйте конфигурационный файл "stax.properties". Файл в стандартном формате Properties и обычно находится в каталоге conf установки Java. Он содержит полное имя класса реализации, причём ключ — это системная переменная, определённая выше.

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

    Используйте конфигурационный файл jaxp.properties. Файл имеет тот же формат, что и stax.properties, и будет прочитан только в случае, если stax.properties не существует.

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

  • В противном случае, генерируется исключение FactoryConfigurationError.

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

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

Параметры:
factoryId - Имя фабрики для поиска, совпадает с именем свойства
classLoader - 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 в противном случае

© 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/XMLOutputFactory.html

Spec-Zone.ru

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