Класс XMLOutputFactory

public abstract class XMLOutputFactory
extends Object

Определяет абстрактную реализацию фабрики для получения XMLEventWriters и XMLStreamWriters. В следующей таблице определены стандартные свойства этого спецификатора. Каждое свойство отличается по уровню поддержки, требуемому каждой реализацией. Уровень требуемой поддержки описан в столбце «Требуется».

Имя свойства Поведение Тип возвращаемого значения Значение по умолчанию Требуется
javax.xml.stream.isRepairingNamespaces по умолчанию устанавливает префиксы на стороне вывода Boolean False Да

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

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

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

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

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

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

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

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

С момента:
1.6
См. также:
XMLInputFactory, XMLEventWriter, XMLStreamWriter

Поля

Модификатор и тип Поле Описание
static String IS_REPAIRING_NAMESPACES

Свойство, используемое для установки значения по умолчанию для префиксов на стороне вывода

Конструкторы

Модификатор Конструктор Описание
protected XMLOutputFactory()

Методы

Модификатор и тип Метод Описание
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()

Методы

newDefaultFactory

public static XMLOutputFactory newDefaultFactory()

Создаёт новый экземпляр XMLOutputFactory стандартной реализации системы.

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

newInstance

public static XMLOutputFactory newInstance()
                                    throws FactoryConfigurationError

Создаёт новый экземпляр фабрики точно так же, как метод newFactory().

Исключение:
FactoryConfigurationError - если экземпляр этой фабрики не может быть загружен

newFactory

public static XMLOutputFactory newFactory()
                                   throws FactoryConfigurationError

Создаёт новый экземпляр фабрики.

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

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

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

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

  • Использует механизм загрузки поставщиков услуг, определённый классом ServiceLoader, для поиска и загрузки реализации службы с использованием механизма стандартной загрузки: механизм загрузки поставщиков услуг будет использовать поток текущей нити для попытки загрузки службы. Если загрузчик контекста потока равен null, будет использован системный загрузчик классов.

  • В противном случае возвращается стандартная реализация.

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

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

    Использует файл конфигурации jaxp "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 - Использовать загрузчик классов
Возвращает:
реализация фабрики
Исключение:
FactoryConfigurationError - в случае ошибки конфигурации службы или если реализация недоступна или не может быть создана.

createXMLStreamWriter

public abstract XMLStreamWriter createXMLStreamWriter(Writer stream)
                                               throws XMLStreamException

Создаёт новый XMLStreamWriter, который записывает в поток

Параметры:
stream - поток для записи
Исключение:
XMLStreamException

createXMLStreamWriter

public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream)
                                               throws XMLStreamException

Создаёт новый XMLStreamWriter, который записывает в поток

Параметры:
stream - поток для записи
Исключение:
XMLStreamException

createXMLStreamWriter

public abstract XMLStreamWriter createXMLStreamWriter(OutputStream stream,
                                                      String encoding)
                                               throws XMLStreamException

Создаёт новый XMLStreamWriter, который записывает в поток

Параметры:
stream - поток для записи
encoding - кодировка для использования
Исключение:
XMLStreamException

createXMLStreamWriter

public abstract XMLStreamWriter createXMLStreamWriter(Result result)
                                               throws XMLStreamException

Создаёт новый XMLStreamWriter, который записывает в результат JAXP. Этот метод является необязательным.

Параметры:
result - результат для записи
Исключение:
UnsupportedOperationException - если этот метод не поддерживается этим XMLOutputFactory
XMLStreamException

createXMLEventWriter

public abstract XMLEventWriter createXMLEventWriter(Result result)
                                             throws XMLStreamException

Создаёт новый XMLEventWriter, который записывает в результат JAXP. Этот метод является необязательным.

Параметры:
result - результат для записи
Исключение:
UnsupportedOperationException - если этот метод не поддерживается этим XMLOutputFactory
XMLStreamException

createXMLEventWriter

public abstract XMLEventWriter createXMLEventWriter(OutputStream stream)
                                             throws XMLStreamException

Создаёт новый XMLEventWriter, который записывает в поток

Параметры:
stream - поток для записи
Исключение:
XMLStreamException

createXMLEventWriter

public abstract XMLEventWriter createXMLEventWriter(OutputStream stream,
                                                    String encoding)
                                             throws XMLStreamException

Создаёт новый XMLEventWriter, который записывает в поток

Параметры:
stream - поток для записи
encoding - кодировка для использования
Исключение:
XMLStreamException

createXMLEventWriter

public abstract XMLEventWriter createXMLEventWriter(Writer stream)
                                             throws XMLStreamException

Создаёт новый XMLEventWriter, который записывает в поток

Параметры:
stream - поток для записи
Исключение:
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, 2020, 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/11/docs/api/java.xml/javax/xml/stream/XMLOutputFactory.html

Spec-Zone .ru
спецификации, руководства, описания, API