Класс DocumentBuilderFactory
public abstract class DocumentBuilderFactory extends Object
- С:
- 1.4
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Защищённый конструктор для предотвращения инстанцирования. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Object |
getAttribute |
Позволяет пользователю получить определённые атрибуты в базовой реализации. |
abstract boolean |
getFeature |
Получить состояние указанного функционального параметра. |
Schema |
getSchema() |
Получить объект Schema, указанный через метод setSchema(Schema schema). |
boolean |
isCoalescing() |
Указывает, настроена ли фабрика на создание парсеров, которые преобразуют узлы CDATA в узлы Text и добавляют их к смежному (если есть) узлу Text. |
boolean |
isExpandEntityReferences() |
Указывает, настроена ли фабрика на создание парсеров, которые расширяют узлы ссылок на сущности. |
boolean |
isIgnoringComments() |
Указывает, настроена ли фабрика на создание парсеров, которые игнорируют комментарии. |
boolean |
isIgnoringElementContentWhitespace() |
Указывает, настроена ли фабрика на создание парсеров, которые игнорируют игнорируемые пробелы в содержимом элемента. |
boolean |
isNamespaceAware() |
Указывает, настроена ли фабрика на создание парсеров, которые учитывают пространства имён. |
boolean |
isValidating() |
Указывает, настроена ли фабрика на создание парсеров, которые проверяют XML-содержимое во время разбора. |
boolean |
isXIncludeAware() |
Получить состояние обработки XInclude. |
static DocumentBuilderFactory |
newDefaultInstance() |
Создаёт новый экземпляр DocumentBuilderFactory встроенной реализации по умолчанию системы. |
static DocumentBuilderFactory |
newDefaultNSInstance() |
Создаёт новый NamespaceAware экземпляр DocumentBuilderFactory встроенной реализации по умолчанию системы. |
abstract DocumentBuilder |
newDocumentBuilder() |
Создаёт новый экземпляр DocumentBuilder с использованием текущих параметров. |
static DocumentBuilderFactory |
newInstance() |
Получает новый экземпляр DocumentBuilderFactory. |
static DocumentBuilderFactory |
newInstance |
Получить новый экземпляр DocumentBuilderFactory по имени класса. |
static DocumentBuilderFactory |
newNSInstance() |
Создаёт новый NamespaceAware экземпляр DocumentBuilderFactory. |
static DocumentBuilderFactory |
newNSInstance |
Создаёт новый NamespaceAware экземпляр DocumentBuilderFactory по имени класса. |
abstract void |
setAttribute |
Позволяет пользователю задать определённые атрибуты в базовой реализации. |
void |
setCoalescing |
Указывает, что парсер, созданный этим кодом, преобразует узлы CDATA в узлы Text и добавляет их к смежному (если есть) текстовому узлу. |
void |
setExpandEntityReferences |
Указывает, что парсер, созданный этим кодом, расширит узлы ссылок на сущности. |
abstract void |
setFeature |
Устанавливает параметр для этого DocumentBuilderFactory и DocumentBuilder созданных этой фабрикой. |
void |
setIgnoringComments |
Указывает, что парсер, созданный этим кодом, будет игнорировать комментарии. |
void |
setIgnoringElementContentWhitespace |
Указывает, что парсеры, созданные этой фабрикой, должны удалять пробелы в содержимом элемента (иногда неформально называемые «игнорируемыми пробелами») при разборе XML-документов (см. XML Rec 2.10). |
void |
setNamespaceAware |
Указывает, что парсер, созданный этим кодом, обеспечит поддержку XML-пространств имён. |
void |
setSchema |
Установить Schema для использования парсерами, созданными из этой фабрики. |
void |
setValidating |
Указывает, что парсер, созданный этим кодом, будет проверять документы по мере их разбора. |
void |
setXIncludeAware |
Установить состояние обработки XInclude. |
Подробное описание конструкторов
DocumentBuilderFactory
protected DocumentBuilderFactory()
newInstance().Подробное описание методов
newDefaultNSInstance
public static DocumentBuilderFactory newDefaultNSInstance()
- Требования к реализации:
- Помимо создания экземпляра фабрики таким же образом, как и в методе
newDefaultInstance(), этот метод должен установить NamespaceAware в значение true. - Возвращает:
- новый экземпляр встроенной реализации по умолчанию.
- С:
- 13
newNSInstance
public static DocumentBuilderFactory newNSInstance()
- Требования к реализации:
- Помимо создания экземпляра фабрики таким же образом, как и в методе
newInstance(), этот метод должен установить NamespaceAware в значение true. - Возвращает:
- новый экземпляр определённой реализации.
- Изначает:
-
FactoryConfigurationError- в случае ошибки конфигурации сервиса или если реализация недоступна или не может быть создана. - С:
- 13
newNSInstance
public static DocumentBuilderFactory newNSInstance(String factoryClassName, ClassLoader classLoader)
- Требования к реализации:
- Помимо создания экземпляра фабрики таким же образом, как и в методе
newInstance(java.lang.String, java.lang.ClassLoader), этот метод должен установить NamespaceAware в значение true. - Параметры:
-
factoryClassName- полное имя класса фабрики, предоставляющей реализациюjavax.xml.parsers.DocumentBuilderFactory. -
classLoader-ClassLoaderдля загрузки класса фабрики. Если это null, используется контекстный classLoader текущегоThread. - Возвращает:
- новый экземпляр определённой реализации.
- Изначает:
-
FactoryConfigurationError- еслиfactoryClassNameравен null, или класс фабрики не может быть загружен или создан. - С:
- 13
newDefaultInstance
public static DocumentBuilderFactory newDefaultInstance()
- Возвращает:
- Новый экземпляр встроенной реализации по умолчанию.
- С:
- 9
newInstance
public static DocumentBuilderFactory newInstance()
DocumentBuilderFactory. Этот метод использует механизм поиска JAXP, чтобы определить класс реализации DocumentBuilderFactory, который необходимо загрузить. После получения ссылки на DocumentBuilderFactory, приложение может использовать фабрику для настройки и получения экземпляров парсеров.
Совет по устранению неполадок
Установка системной переменной jaxp.debug заставит этот метод выводить множество отладочных сообщений в System.err о своих действиях и местах поиска.
Если у вас возникают проблемы с загрузкой DocumentBuilder, попробуйте:
java -Djaxp.debug=1 YourProgram ....
- Возвращает:
- Новый экземпляр
DocumentBuilderFactory - Изначает:
-
FactoryConfigurationError- в случае ошибки конфигурации сервиса или если реализация недоступна или не может быть создана.
newInstance
public static DocumentBuilderFactory newInstance(String factoryClassName, ClassLoader classLoader)
DocumentBuilderFactory по имени класса. Эта функция полезна, когда в классе пути существует несколько поставщиков. Она даёт больше контроля приложению, позволяя указать, какой поставщик должен быть загружен. После получения ссылки на DocumentBuilderFactory, приложение может использовать фабрику для настройки и получения экземпляров парсеров.
Совет по устранению неполадок
Установка системной переменной jaxp.debug заставит этот метод выводить множество отладочных сообщений в System.err о своих действиях и местах поиска.
Если у вас возникают проблемы, попробуйте:
java -Djaxp.debug=1 YourProgram ....
- Параметры:
-
factoryClassName- полное имя класса фабрики, предоставляющей реализациюjavax.xml.parsers.DocumentBuilderFactory. -
classLoader-ClassLoaderдля загрузки класса фабрики. Если null, используется контекстный classLoader текущегоThread. - Возвращает:
- Новый экземпляр
DocumentBuilderFactory - Изначает:
-
FactoryConfigurationError- еслиfactoryClassNameравен null, или класс фабрики не может быть загружен или создан. - С:
- 1.6
- См. также:
newDocumentBuilder
public abstract DocumentBuilder newDocumentBuilder() throws ParserConfigurationException
DocumentBuilder с использованием текущих параметров конфигурации.- Возвращает:
- Новый экземпляр DocumentBuilder.
- Изначает:
-
ParserConfigurationException- если DocumentBuilder не может быть создан в соответствии с запрошенной конфигурацией.
setNamespaceAware
public void setNamespaceAware(boolean awareness)
false
- Параметры:
-
awareness- true, если созданный парсер будет поддерживать XML-пространства имён; false в противном случае.
setValidating
public void setValidating(boolean validating)
false. Примечание: "валидация" здесь означает валидирующий парсер, как определено в рекомендации по XML. Другими словами, это в основном управляет валидацией DTD. (за исключением устаревших двух свойств, определённых в JAXP 1.2.)
Для использования современных языков схем, таких как W3C XML Schema или RELAX NG вместо DTD, вы можете настроить свой парсер на режим невалидирующего парсинга, оставив метод setValidating(boolean) false, а затем использовать метод setSchema(Schema) для привязки схемы к парсеру.
- Параметры:
-
validating- true, если созданный парсер будет проверять документы при разборе; false в противном случае.
setIgnoringElementContentWhitespace
public void setIgnoringElementContentWhitespace(boolean whitespace)
false.- Параметры:
-
whitespace- true, если созданный парсер должен удалять пробелы в содержимом элементов при разборе XML-документов; false в противном случае.
setExpandEntityReferences
public void setExpandEntityReferences(boolean expandEntityRef)
true
- Параметры:
-
expandEntityRef- true, если созданный парсер будет расширять ссылки на сущности; false в противном случае.
setIgnoringComments
public void setIgnoringComments(boolean ignoreComments)
false.- Параметры:
-
ignoreComments-booleanзначение для игнорирования комментариев во время обработки
setCoalescing
public void setCoalescing(boolean coalescing)
false
- Параметры:
-
coalescing- true, если созданный парсер будет преобразовывать узлы CDATA в узлы Text и добавлять их к смежному (если есть) узлу текста; false в противном случае.
isNamespaceAware
public boolean isNamespaceAware()
- Возвращает:
- true, если фабрика настроена на создание парсеров, которые осознают пространства имён; false в противном случае.
isValidating
public boolean isValidating()
- Returns:
- true, если фабрика настроена на создание парсеров, которые валидируют содержимое XML во время разбора; false в противном случае.
isIgnoringElementContentWhitespace
public boolean isIgnoringElementContentWhitespace()
- Returns:
- true, если фабрика настроена на создание парсеров, которые игнорируют игнорируемое форматирование пробелов в содержимом элемента; false в противном случае.
isExpandEntityReferences
public boolean isExpandEntityReferences()
- Returns:
- true, если фабрика настроена на создание парсеров, которые расширяют узлы ссылок на сущности; false в противном случае.
isIgnoringComments
public boolean isIgnoringComments()
- Returns:
- true, если фабрика настроена на создание парсеров, которые игнорируют комментарии; false в противном случае.
isCoalescing
public boolean isCoalescing()
- Returns:
- true, если фабрика настроена на создание парсеров, которые преобразуют узлы CDATA в узлы Text и добавляют их к смежному (если есть) узлу Text; false в противном случае.
setAttribute
public abstract void setAttribute(String name, Object value) throws IllegalArgumentException
Все реализации, поддерживающие JAXP 1.5 или более позднюю версию, обязаны поддерживать свойства XMLConstants.ACCESS_EXTERNAL_DTD и XMLConstants.ACCESS_EXTERNAL_SCHEMA.
- Установка свойства
XMLConstants.ACCESS_EXTERNAL_DTDограничивает доступ к внешним DTD, внешним ссылкам на сущности протоколами, указанными в свойстве. Если доступ запрещён во время разбора из-за ограничения этого свойства,SAXExceptionбудет выброшен методами разбора, определённымиDocumentBuilder. - Установка свойства
XMLConstants.ACCESS_EXTERNAL_SCHEMAограничивает доступ к внешним схемам, установленным атрибутом schemaLocation, протоколами, указанными в свойстве. Если доступ запрещён во время разбора из-за ограничения этого свойства,SAXExceptionбудет выброшен методами разбора, определённымиDocumentBuilder.
- Parameters:
-
name- Название атрибута. -
value- Значение атрибута. - Throws:
-
IllegalArgumentException- выброшен, если базовая реализация не распознаёт атрибут.
getAttribute
public abstract Object getAttribute(String name) throws IllegalArgumentException
- Parameters:
-
name- Название атрибута. - Returns:
- значение Значение атрибута.
- Throws:
-
IllegalArgumentException- выброшен, если базовая реализация не распознаёт атрибут.
setFeature
public abstract void setFeature(String name, boolean value) throws ParserConfigurationException
DocumentBuilderFactory и DocumentBuilder, созданных этой фабрикой. Имена параметров — полностью квалифицированные URI. Реализации могут определять свои собственные параметры. ParserConfigurationException выброшен, если этот DocumentBuilderFactory или DocumentBuilder не поддерживают данный параметр. Возможна ситуация, когда DocumentBuilderFactory предоставляет значение параметра, но не может изменить его состояние.
Все реализации обязаны поддерживать параметр XMLConstants.FEATURE_SECURE_PROCESSING. Когда параметр:
-
true: реализация ограничит обработку XML, чтобы соответствовать ограничениям реализации. Примеры включают ограничения расширения сущностей и конструкции XML Schema, которые потребляют большие объёмы ресурсов. Если обработка XML ограничена по соображениям безопасности, она будет сообщена вызовом зарегистрированномуErrorHandler.fatalError(SAXParseException exception). СмотритеDocumentBuilder.setErrorHandler(org.xml.sax.ErrorHandler errorHandler). -
false: реализация будет обрабатывать XML в соответствии со спецификациями XML без учёта возможных ограничений реализации.
- Parameters:
-
name- Имя параметра. -
value- Состояние параметраtrueилиfalse. - Throws:
-
ParserConfigurationException- если этотDocumentBuilderFactoryилиDocumentBuilderне поддерживают этот параметр. -
NullPointerException- если параметрnameравен null. - Since:
- 1.5
getFeature
public abstract boolean getFeature(String name) throws ParserConfigurationException
Имена параметров — полностью квалифицированные URI. Реализации могут определять свои собственные параметры. ParserConfigurationException выброшен, если этот DocumentBuilderFactory или DocumentBuilder не поддерживают данный параметр. Возможно, DocumentBuilderFactory предоставляет значение параметра, но не может изменить его состояние.
- Parameters:
-
name- Имя параметра. - Returns:
- Состояние именованного параметра.
- Throws:
-
ParserConfigurationException- если этотDocumentBuilderFactoryилиDocumentBuilderне поддерживают этот параметр. - Since:
- 1.5
getSchema
public Schema getSchema()
Schema, указанный через метод setSchema(Schema schema).- Returns:
- объект
Schema, который был последним установлен через методsetSchema(Schema), или null, если метод не был вызван после созданияDocumentBuilderFactory. - Throws:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод. - Since:
- 1.5
setSchema
public void setSchema(Schema schema)
Schema, который будет использоваться парсерами, созданными из этой фабрики. Когда Schema не равен null, парсер будет использовать созданный из него валидатор для валидации документов перед передачей информации приложению.
При обнаружении ошибок валидатором, парсер обязан сообщить их пользователю, указав ErrorHandler (или, если обработчик ошибок не установлен, проигнорировать их или выбросить), так же как и любые другие ошибки, обнаруженные самим парсером. Другими словами, если пользовательский ErrorHandler установлен, он должен получить эти ошибки; в противном случае они должны обрабатываться в соответствии с правилами обработки ошибок по умолчанию, специфичными для реализации.
Валидатор может изменить результат разбора (например, добавив значения по умолчанию, отсутствующие в документах), и парсер отвечает за то, чтобы приложение получало изменённые DOM-деревья.
Изначально в качестве Schema устанавливается null.
Эта обработка будет действовать даже если метод isValidating() возвращает false.
Не допускается одновременное использование свойств http://java.sun.com/xml/jaxp/properties/schemaSource и http://java.sun.com/xml/jaxp/properties/schemaLanguage вместе с объектом Schema. Такая конфигурация вызовет исключение ParserConfigurationException при вызове newDocumentBuilder().
Примечание для разработчиков
Парсер должен уметь работать с любой реализацией Schema. Однако парсеры и схемы могут использовать специфичные для реализации механизмы, если они дают результат, описанный в спецификации.
- Parameters:
-
schema-Schemaдля использования илиnullдля удаления схемы. - Throws:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод. - Since:
- 1.5
setXIncludeAware
public void setXIncludeAware(boolean state)
Если в экземпляре документа найдено разметка XInclude, должна ли она обрабатываться в соответствии со спецификацией XML Inclusions (XInclude) Version 1.0.
Обработка XInclude по умолчанию false.
- Параметры:
-
state- Установить обработку XInclude вtrueилиfalse - Исключения:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод. - С:
- 1.5
isXIncludeAware
public boolean isXIncludeAware()
- Возвращает:
- текущее состояние обработки XInclude
- Исключения:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод. - С:
- 1.5
© 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/parsers/DocumentBuilderFactory.html