Класс 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));
Это свойство указывает, что писатель использует значения по умолчанию для префиксов деклараций пространства имен. Значение по умолчанию — ложь.
Если писатель isRepairingNamespaces, он создаст объявление пространства имен в текущем элементе StartElement для любого атрибута, для которого в данный момент нет объявления пространства имен в области видимости. Если у StartElement есть URI, но нет указанного префикса, префикс будет назначен, если префикс не был объявлен в родительском элементе текущего StartElement, он будет объявлен в текущем StartElement. Если defaultNamespace привязан и находится в области видимости, и пространство имен по умолчанию соответствует URI атрибута или имени элемента StartElement QName, префикс не будет назначен.
Если имя элемента или атрибута имеет префикс, но не привязано к никакому URI пространства имен, то префикс будет удален во время сериализации.
Если имена элемента и/или атрибута в одном теге start или empty-element привязаны к разным URI пространства имен и используют один и тот же префикс, то элемент или первый встречающийся атрибут сохраняет исходный префикс, а последующие атрибуты заменяют свои префиксы на новый префикс, который привязан к URI пространства имен этих атрибутов.
Если имя элемента или атрибута использует префикс, привязанный к другому URI, чем тот, который унаследован из контекста пространства имен родителя этого элемента, и нет объявления пространства имен в контексте текущего элемента, то такое объявление пространства имен добавляется.
Если имя элемента или атрибута привязано к префиксу, и есть объявление пространства имен, которое привязывает этот префикс к другому URI, то это объявление пространства имен либо удаляется, если правильное сопоставление унаследовано из контекста родителя этого элемента, либо изменяется на URI пространства имен элемента или атрибута, использующего этот префикс.
- С тех пор, как:
- 1.6
- Версия:
- 1.2
- См. также:
-
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(Result result) Создает новый XMLEventWriter, который записывает в результат JAXP. |
abstract XMLEventWriter |
createXMLEventWriter(Writer stream) Создает новый XMLEventWriter, который записывает в поток |
abstract XMLStreamWriter |
createXMLStreamWriter(OutputStream stream) Создает новый XMLStreamWriter, который записывает в поток |
abstract XMLStreamWriter |
createXMLStreamWriter(OutputStream stream,
String encoding) Создает новый XMLStreamWriter, который записывает в поток |
abstract XMLStreamWriter |
createXMLStreamWriter(Result result) Создает новый XMLStreamWriter, который записывает в результат JAXP. |
abstract XMLStreamWriter |
createXMLStreamWriter(Writer stream) Создает новый XMLStreamWriter, который записывает в поток |
abstract Object |
getProperty(String name) Получает функциональное свойство/свойство на базовой реализации |
abstract boolean |
isPropertySupported(String name) Запрашивает набор свойств, которые поддерживает эта фабрика. |
static XMLOutputFactory |
newFactory() Создает новый экземпляр фабрики. |
static XMLOutputFactory |
newFactory(String factoryId,
ClassLoader classLoader) Создает новый экземпляр фабрики. |
static XMLOutputFactory |
newInstance() Создает новый экземпляр фабрики точно так же, как метод |
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()
Методы
newInstance
public static XMLOutputFactory newInstance()
throws FactoryConfigurationError Создает новый экземпляр фабрики точно так же, как метод newFactory().
- Исключение:
-
FactoryConfigurationError- если экземпляр этой фабрики не может быть загружен
newFactory
public static XMLOutputFactory newFactory()
throws FactoryConfigurationError Создает новый экземпляр фабрики.
Этот статический метод создает новый экземпляр фабрики. Этот метод использует следующую упорядоченную процедуру поиска для определения класса реализации XMLOutputFactory для загрузки:
- Использование системного свойства javax.xml.stream.XMLOutputFactory.
- Использование файла свойств "lib/stax.properties" в каталоге JRE. Этот файл конфигурации имеет стандартный формат java.util.Properties и содержит полное имя класса реализации с ключом, являющимся системным свойством, определенным выше.
- Использование механизмов загрузки поставщиков услуг, определенных классом
ServiceLoader, для попытки найти и загрузить реализацию службы с использованием механизма загрузки по умолчанию: механизм загрузки поставщиков услуг будет использовать классификатор контекста текущей нити для попытки загрузки службы. Если классификатор контекста равен null, будет использован системный классификатор. - В противном случае возвращается системная реализация по умолчанию.
После получения ссылки на XMLOutputFactory приложение может использовать фабрику для конфигурации и получения экземпляров потоков.
Обратите внимание, что это новый метод, который заменяет устаревший метод newInstance(). Этот заменяющий метод не определяет никаких изменений в поведении по отношению к устаревшему методу.
- Исключение:
-
FactoryConfigurationError- в случае ошибки конфигурации службы или если реализация недоступна или не может быть создана.
newInstance
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. - Использование файла свойств "lib/stax.properties" в каталоге JRE. Этот файл конфигурации имеет стандартный формат java.util.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- поток для записи - Исключение:
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.