Класс XMLInputFactory
- java.lang.Object
-
- javax.xml.stream.XMLInputFactory
public abstract class XMLInputFactory extends Object
Определяет абстрактную реализацию фабрики для получения потоков. В следующей таблице определены стандартные свойства этого спецификатора. Каждое свойство отличается уровнем поддержки, требуемым каждой реализацией. Уровень требуемой поддержки описан в столбце «Требуемо».
| Имя свойства | Поведение | Тип возвращаемого значения | Значение по умолчанию | Требуемо |
|---|---|---|---|---|
| javax.xml.stream.isValidating | Включает/выключает проверку DTD, специфичную для реализации | Boolean | False | Нет |
| javax.xml.stream.isNamespaceAware | Включает/выключает обработку имен пространств имён для поддержки XML 1.0 | Boolean | True | True (требуется) / False (необязательно) |
| javax.xml.stream.isCoalescing | Требует от процессора объединения смежных данных символов | Boolean | False | Да |
| javax.xml.stream.isReplacingEntityReferences | Заменяет внутренние ссылки на сущности их замещающим текстом и сообщает о них как о символах | Boolean | True | Да |
| javax.xml.stream.isSupportingExternalEntities | Разрешает внешние распарсенные сущности | Boolean | Не указано | Да |
| javax.xml.stream.supportDTD | Используйте это свойство для запроса процессоров, которые не поддерживают DTD | Boolean | True | Да |
| javax.xml.stream.reporter | устанавливает/получает реализацию XMLReporter | javax.xml.stream.XMLReporter | Null | Да |
| javax.xml.stream.resolver | устанавливает/получает реализацию интерфейса XMLResolver | javax.xml.stream.XMLResolver | Null | Да |
| javax.xml.stream.allocator | устанавливает/получает реализацию интерфейса XMLEventAllocator | javax.xml.stream.util.XMLEventAllocator | Null | Да |
- Since:
- 1.6
- См. также:
-
XMLOutputFactory,XMLEventReader,XMLStreamReader,EventFilter,XMLReporter,XMLResolver,XMLEventAllocator
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static String | ALLOCATOR | Свойство, используемое для установки/получения реализации аллокатора |
static String | IS_COALESCING | Свойство, требующее от парсера объединение смежных разделов данных символов |
static String | IS_NAMESPACE_AWARE | Свойство, используемое для включения/выключения поддержки пространств имен, это для поддержки документов XML 1.0, должна поддерживаться только настройка true |
static String | IS_REPLACING_ENTITY_REFERENCES | Требует от парсера замены внутренних ссылок на сущности их замещающим текстом и сообщает о них как о символах |
static String | IS_SUPPORTING_EXTERNAL_ENTITIES | Свойство, требующее от парсера разрешения внешних распарсенных сущностей |
static String | IS_VALIDATING | Свойство, используемое для включения/выключения проверки, специфичной для реализации |
static String | REPORTER | Свойство, используемое для установки/получения реализации интерфейса XMLReporter |
static String | RESOLVER | Свойство, используемое для установки/получения реализации XMLResolver |
static String | SUPPORT_DTD | Свойство, требующее от парсера поддержки DTD |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | XMLInputFactory() |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract XMLEventReader | createFilteredReader(XMLEventReader reader,
EventFilter filter) | Создайте фильтрующий читатель событий, который обёртку фильтра вокруг читателя событий |
abstract XMLStreamReader | createFilteredReader(XMLStreamReader reader,
StreamFilter filter) | Создайте фильтрующий читатель, который обёртку фильтра вокруг читателя |
abstract XMLEventReader | createXMLEventReader(InputStream stream) | Создайте новый XMLEventReader из java.io.InputStream |
abstract XMLEventReader | createXMLEventReader(InputStream stream,
String encoding) | Создайте новый XMLEventReader из java.io.InputStream |
abstract XMLEventReader | createXMLEventReader(Reader reader) | Создайте новый XMLEventReader из читателя |
abstract XMLEventReader | createXMLEventReader(String systemId,
InputStream stream) | Создайте новый XMLEventReader из java.io.InputStream |
abstract XMLEventReader | createXMLEventReader(String systemId,
Reader reader) | Создайте новый XMLEventReader из читателя |
abstract XMLEventReader | createXMLEventReader(XMLStreamReader reader) | Создайте новый XMLEventReader из XMLStreamReader. |
abstract XMLEventReader | createXMLEventReader(Source source) | Создайте новый XMLEventReader из JAXP источника. |
abstract XMLStreamReader | createXMLStreamReader(InputStream stream) | Создайте новый XMLStreamReader из java.io.InputStream |
abstract XMLStreamReader | createXMLStreamReader(InputStream stream,
String encoding) | Создайте новый XMLStreamReader из java.io.InputStream |
abstract XMLStreamReader | createXMLStreamReader(Reader reader) | Создайте новый XMLStreamReader из читателя |
abstract XMLStreamReader | createXMLStreamReader(String systemId,
InputStream stream) | Создайте новый XMLStreamReader из java.io.InputStream |
abstract XMLStreamReader | createXMLStreamReader(String systemId,
Reader reader) | Создайте новый XMLStreamReader из java.io.InputStream |
abstract XMLStreamReader | createXMLStreamReader(Source source) | Создайте новый XMLStreamReader из JAXP источника. |
abstract XMLEventAllocator | getEventAllocator() | Получает аллокатор, используемый потоками, созданными с этой фабрикой |
abstract Object | getProperty(String name) | Получает значение функции/свойства от базовой реализации |
abstract XMLReporter | getXMLReporter() | Отчётчик, который будет установлен на любом XMLStreamReader или XMLEventReader, созданном этим экземпляром фабрики. |
abstract XMLResolver | getXMLResolver() | Резолвер, который будет установлен на любом XMLStreamReader или XMLEventReader, созданном этим экземпляром фабрики. |
abstract boolean | isPropertySupported(String name) | Запрашивает набор свойств, которые поддерживает эта фабрика. |
static XMLInputFactory | newDefaultFactory() | Создаёт новый экземпляр встроенной реализации |
static XMLInputFactory | newFactory() | Создайте новый экземпляр фабрики. |
static XMLInputFactory | newFactory(String factoryId,
ClassLoader classLoader) | Создайте новый экземпляр фабрики. |
static XMLInputFactory | newInstance() | Создаёт новый экземпляр фабрики точно так же, как метод |
static XMLInputFactory | newInstance(String factoryId,
ClassLoader classLoader) | Устарело. Этот метод устарел для поддержания согласованности API. |
abstract void | setEventAllocator(XMLEventAllocator allocator) | Устанавливает пользовательский аллокатор событий для событий |
abstract void | setProperty(String name,
Object value) | Позволяет пользователю установить конкретную функцию/свойство в базовой реализации. |
abstract void | setXMLReporter(XMLReporter reporter) | Отчётчик, который будет установлен на любом XMLStreamReader или XMLEventReader, созданном этим экземпляром фабрики. |
abstract void | setXMLResolver(XMLResolver resolver) | Резолвер, который будет установлен на любом XMLStreamReader или XMLEventReader, созданном этим экземпляром фабрики. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
IS_NAMESPACE_AWARE
public static final String IS_NAMESPACE_AWARE
Свойство, используемое для включения/выключения поддержки пространств имён. Это необходимо для поддержки документов XML 1.0, должна поддерживаться только установка true.
- См. также:
- Значения константных полей
IS_VALIDATING
public static final String IS_VALIDATING
Свойство, используемое для включения/выключения проверки, специфичной для реализации.
- См. также:
- Значения константных полей
IS_COALESCING
public static final String IS_COALESCING
Свойство, требующее от парсера объединять смежные разделы данных символов.
- См. также:
- Значения константных полей
IS_REPLACING_ENTITY_REFERENCES
public static final String IS_REPLACING_ENTITY_REFERENCES
Требует от парсера заменять ссылки на внутренние сущности их замещающим текстом и сообщать о них как о символах.
- См. также:
- Значения константных полей
IS_SUPPORTING_EXTERNAL_ENTITIES
public static final String IS_SUPPORTING_EXTERNAL_ENTITIES
Свойство, требующее от парсера разрешать внешние анализируемые сущности.
- См. также:
- Значения константных полей
SUPPORT_DTD
public static final String SUPPORT_DTD
Свойство, требующее от парсера поддерживать DTD.
- См. также:
- Значения константных полей
REPORTER
public static final String REPORTER
Свойство, используемое для установки/получения реализации интерфейса XMLReporter.
- См. также:
- Значения константных полей
RESOLVER
public static final String RESOLVER
Свойство, используемое для установки/получения реализации XMLResolver.
- См. также:
- Значения константных полей
ALLOCATOR
public static final String ALLOCATOR
Свойство, используемое для установки/получения реализации аллокатора.
- См. также:
- Значения константных полей
Конструкторы
XMLInputFactory
protected XMLInputFactory()
Методы
newDefaultFactory
public static XMLInputFactory newDefaultFactory()
Создаёт новый экземпляр реализации XMLInputFactory по умолчанию.
- Возвращает:
- Новый экземпляр реализации
XMLInputFactoryпо умолчанию. - С:
- 9
newInstance
public static XMLInputFactory newInstance()
throws FactoryConfigurationError Создаёт новый экземпляр фабрики таким же образом, как и метод newFactory().
- Исключения:
-
FactoryConfigurationError- если экземпляр этой фабрики не может быть загружен
newFactory
public static XMLInputFactory newFactory()
throws FactoryConfigurationError Создаёт новый экземпляр фабрики.
Этот статический метод создаёт новый экземпляр фабрики. Этот метод использует следующую упорядоченную процедуру поиска для определения класса реализации XMLInputFactory для загрузки:
-
Используйте системную переменную `javax.xml.stream.XMLInputFactory`.
-
Используйте конфигурационный файл "stax.properties". Файл имеет стандартный формат
Propertiesи обычно находится в каталогеconfустановки Java. Он содержит полное имя класса реализации, а ключ — это системная переменная, определённая выше.Файл stax.properties читается реализацией только один раз, а его значения кэшируются для последующего использования. Если файл не существует при первой попытке чтения, дальнейшие попытки проверки его существования не выполняются. Изменить значение любой переменной в stax.properties после первого чтения невозможно.
Используйте конфигурационный файл jaxp "jaxp.properties". Файл имеет такой же формат, как stax.properties, и будет прочитан только в случае, если stax.properties не существует.
-
Используйте механизм загрузки поставщиков сервисов, определённый классом
ServiceLoader, чтобы попытаться найти и загрузить реализацию сервиса, используя механизм загрузки по умолчанию: механизм загрузки поставщиков сервисов будет использовать поток текущего класса для попытки загрузки сервиса. Если поток текущего класса равен null, будет использован системный загрузчик классов. -
В противном случае возвращается реализация по умолчанию система.
После того, как приложение получило ссылку на XMLInputFactory, оно может использовать фабрику для настройки и получения экземпляров потоков.
- Исключения:
-
FactoryConfigurationError- в случае ошибки конфигурации службы или если реализация недоступна или не может быть создана.
newInstance
@Deprecated(since="1.7")
public static XMLInputFactory newInstance(String factoryId,
ClassLoader classLoader)
throws FactoryConfigurationError newFactory(java.lang.String, java.lang.ClassLoader) не вносит изменений в поведение.Создаёт новый экземпляр фабрики
- Параметры:
-
factoryId- имя фабрики для поиска, такое же, как имя свойства -
classLoader- загрузчик классов для использования - Возвращает:
- реализация фабрики
- Исключения:
-
FactoryConfigurationError- если экземпляр этой фабрики не может быть загружен
newFactory
public static XMLInputFactory newFactory(String factoryId,
ClassLoader classLoader)
throws FactoryConfigurationError Создаёт новый экземпляр фабрики. Если аргумент classLoader равен null, используется ContextClassLoader.
Этот метод использует следующую упорядоченную процедуру поиска для определения класса реализации XMLInputFactory для загрузки:
-
Используйте значение системной переменной, идентифицируемой
factoryId. -
Используйте конфигурационный файл "stax.properties". Файл имеет стандартный формат
Propertiesи обычно находится в каталогеconfустановки Java. Он содержит полное имя класса реализации, а ключ — это системная переменная, определённая выше.Файл stax.properties читается реализацией только один раз, а его значения кэшируются для последующего использования. Если файл не существует при первой попытке чтения, дальнейшие попытки проверки его существования не выполняются. Изменить значение любой переменной в stax.properties после первого чтения невозможно.
Используйте конфигурационный файл jaxp "jaxp.properties". Файл имеет такой же формат, как stax.properties, и будет прочитан только в случае, если stax.properties не существует.
-
Если
factoryIdравно "javax.xml.stream.XMLInputFactory", используйте механизм загрузки поставщиков сервисов, определённый классомServiceLoader, для попытки нахождения и загрузки реализации сервиса с использованием указанногоClassLoader. ЕслиclassLoaderравно null, применяется механизм загрузки по умолчанию: механизм загрузки поставщиков сервисов будет использовать поток текущего класса для попытки загрузки сервиса. Если поток текущего класса равен null, будет использован системный загрузчик классов. -
В противном случае вызывается исключение
FactoryConfigurationError.
Обратите внимание, что это новый метод, который заменяет устаревший метод newInstance(String factoryId, ClassLoader classLoader). Этот метод не вносит изменений в поведение по сравнению с устаревшим методом.
- Примечание API:
- Параметр `factoryId` в этом методе не соответствует параметру других фабрик JAXP, где первый параметр — это полное имя класса фабрики, предоставляющей реализацию фабрики.
- Параметры:
-
factoryId- имя фабрики для поиска, такое же, как имя свойства -
classLoader- загрузчик классов для использования - Возвращает:
- реализация фабрики
- Исключения:
-
FactoryConfigurationError- в случае ошибки конфигурации службы или если реализация недоступна или не может быть создана. -
FactoryConfigurationError- если экземпляр этой фабрики не может быть загружен
createXMLStreamReader
public abstract XMLStreamReader createXMLStreamReader(Reader reader)
throws XMLStreamException Создаёт новый XMLStreamReader из ридера.
- Параметры:
-
reader- данные XML для чтения - Исключения:
XMLStreamException
createXMLStreamReader
public abstract XMLStreamReader createXMLStreamReader(Source source)
throws XMLStreamException Создаёт новый XMLStreamReader из источника JAXP. Этот метод является необязательным.
- Параметры:
-
source- источник для чтения - Исключения:
-
UnsupportedOperationException- если этот метод не поддерживается данным XMLInputFactory XMLStreamException
createXMLStreamReader
public abstract XMLStreamReader createXMLStreamReader(InputStream stream)
throws XMLStreamException Создаёт новый XMLStreamReader из java.io.InputStream
- Параметры:
-
stream- входной поток для чтения - Исключения:
XMLStreamException
createXMLStreamReader
public abstract XMLStreamReader createXMLStreamReader(InputStream stream,
String encoding)
throws XMLStreamException Создаёт новый XMLStreamReader из java.io.InputStream
- Параметры:
-
stream- входной поток для чтения -
encoding- кодировка символов потока - Исключения:
XMLStreamException
createXMLStreamReader
public abstract XMLStreamReader createXMLStreamReader(String systemId,
InputStream stream)
throws XMLStreamException Создаёт новый XMLStreamReader из java.io.InputStream
- Параметры:
-
systemId- системный идентификатор потока -
stream- входной поток для чтения - Исключения:
XMLStreamException
createXMLStreamReader
public abstract XMLStreamReader createXMLStreamReader(String systemId,
Reader reader)
throws XMLStreamException Создаёт новый XMLStreamReader из java.io.InputStream
- Параметры:
-
systemId- системный идентификатор потока -
reader- входной поток для чтения - Исключения:
XMLStreamException
createXMLEventReader
public abstract XMLEventReader createXMLEventReader(Reader reader)
throws XMLStreamException Создаёт новый XMLEventReader из ридера
- Параметры:
-
reader- данные XML для чтения - Исключения:
XMLStreamException
createXMLEventReader
public abstract XMLEventReader createXMLEventReader(String systemId,
Reader reader)
throws XMLStreamException Создаёт новый XMLEventReader из ридера
- Параметры:
-
systemId- системный идентификатор ввода -
reader- данные XML для чтения - Исключения:
XMLStreamException
createXMLEventReader
public abstract XMLEventReader createXMLEventReader(XMLStreamReader reader)
throws XMLStreamException Создаёт новый XMLEventReader из XMLStreamReader. После использования для построения экземпляра XMLEventReader, возвращаемого этим методом, XMLStreamReader не должен использоваться.
- Параметры:
-
reader- XMLStreamReader для чтения (не должен изменяться) - Возвращает:
- новый XMLEventReader
- Исключения:
XMLStreamException
createXMLEventReader
public abstract XMLEventReader createXMLEventReader(Source source)
throws XMLStreamException Создаёт новый XMLEventReader из источника JAXP. Поддержка этого метода является необязательной.
- Параметры:
-
source- источник для чтения - Исключения:
-
UnsupportedOperationException- если этот метод не поддерживается данным XMLInputFactory XMLStreamException
createXMLEventReader
public abstract XMLEventReader createXMLEventReader(InputStream stream)
throws XMLStreamException Создаёт новый XMLEventReader из java.io.InputStream
- Параметры:
-
stream- входной поток для чтения - Исключения:
XMLStreamException
createXMLEventReader
public abstract XMLEventReader createXMLEventReader(InputStream stream,
String encoding)
throws XMLStreamException Создать новый XMLEventReader из java.io.InputStream
- Parameters:
-
stream- входной поток для чтения -
encoding- кодировка символов потока - Throws:
XMLStreamException
createXMLEventReader
public abstract XMLEventReader createXMLEventReader(String systemId,
InputStream stream)
throws XMLStreamException Создать новый XMLEventReader из java.io.InputStream
- Parameters:
-
systemId- системный идентификатор потока -
stream- входной поток для чтения - Throws:
XMLStreamException
createFilteredReader
public abstract XMLStreamReader createFilteredReader(XMLStreamReader reader,
StreamFilter filter)
throws XMLStreamException Создать фильтрующий чтец, который обернёт фильтр вокруг чтеца
- Parameters:
-
reader- чтец для фильтрации -
filter- фильтр, применяемый к чтецу - Throws:
XMLStreamException
createFilteredReader
public abstract XMLEventReader createFilteredReader(XMLEventReader reader,
EventFilter filter)
throws XMLStreamException Создать фильтрующий чтец событий, который обернёт фильтр вокруг чтеца событий
- Parameters:
-
reader- чтец событий для обёртки -
filter- фильтр, применяемый к чтецу событий - Throws:
XMLStreamException
getXMLResolver
public abstract XMLResolver getXMLResolver()
Резолвер, который будет установлен для любого XMLStreamReader или XMLEventReader, созданного данным экземпляром фабрики.
setXMLResolver
public abstract void setXMLResolver(XMLResolver resolver)
Резолвер, который будет установлен для любого XMLStreamReader или XMLEventReader, созданного данным экземпляром фабрики.
- Parameters:
-
resolver- резолвер для разрешения ссылок
getXMLReporter
public abstract XMLReporter getXMLReporter()
Репортер, который будет установлен для любого XMLStreamReader или XMLEventReader, созданного данным экземпляром фабрики.
setXMLReporter
public abstract void setXMLReporter(XMLReporter reporter)
Репортер, который будет установлен для любого XMLStreamReader или XMLEventReader, созданного данным экземпляром фабрики.
- Parameters:
-
reporter- резолвер для отчётов об ошибках, не являющихся критическими
setProperty
public abstract void setProperty(String name,
Object value)
throws IllegalArgumentException Позволяет пользователю установить определённые функции/свойства в базовой реализации. Базовая реализация не обязана поддерживать все настройки всех свойств в спецификации и может использовать IllegalArgumentException, чтобы сигнализировать, что недопустимое свойство не может быть установлено со значением.
Все реализации, которые реализуют JAXP 1.5 или новее, обязаны поддерживать свойство XMLConstants.ACCESS_EXTERNAL_DTD.
-
Доступ к внешним DTD, внешним ссылкам на сущности ограничен протоколами, указанными в свойстве. Если доступ запрещён во время разбора из-за ограничения данного свойства,
XMLStreamExceptionбудет сгенерировано методомXMLStreamReader.next()илиXMLEventReader.nextEvent().
- Parameters:
-
name- Имя свойства (не может быть null) -
value- Значение свойства - Throws:
-
IllegalArgumentException- если свойство не поддерживается
getProperty
public abstract Object getProperty(String name)
throws IllegalArgumentException Получить значение функции/свойства из базовой реализации
- Parameters:
-
name- Имя свойства (не может быть null) - Returns:
- Значение свойства
- Throws:
-
IllegalArgumentException- если свойство не поддерживается
isPropertySupported
public abstract boolean isPropertySupported(String name)
Запрос набора свойств, которые поддерживает эта фабрика.
- Parameters:
-
name- Имя свойства (не может быть null) - Returns:
- true, если свойство поддерживается, и false в противном случае
setEventAllocator
public abstract void setEventAllocator(XMLEventAllocator allocator)
Установить пользовательский аллокатор событий для событий
- Parameters:
-
allocator- пользовательский аллокатор
getEventAllocator
public abstract XMLEventAllocator getEventAllocator()
Получить аллокатор, используемый потоками, созданными с помощью этой фабрики
© 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/XMLInputFactory.html