Класс 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 в текстовые узлы и добавляющих их к соседнему (если он есть) текстовому узлу. |
boolean |
isExpandEntityReferences() |
Указывает, настроена ли фабрика на создание парсеров, раскрывающих узлы ссылок на сущности. |
boolean |
isIgnoringComments() |
Указывает, настроена ли фабрика на создание парсеров, игнорирующих комментарии. |
boolean |
isIgnoringElementContentWhitespace() |
Указывает, настроена ли фабрика на создание парсеров, игнорирующих незначащие пробельные символы в содержимом элементов. |
boolean |
isNamespaceAware() |
Указывает, настроена ли фабрика на создание парсеров с поддержкой пространств имён. |
boolean |
isValidating() |
Указывает, настроена ли фабрика на создание парсеров, проверяющих содержимое XML во время разбора. |
boolean |
isXIncludeAware() |
Возвращает состояние обработки XInclude. |
static DocumentBuilderFactory |
newDefaultInstance() |
Создаёт новый экземпляр встроенной системной реализации DocumentBuilderFactory. |
static DocumentBuilderFactory |
newDefaultNSInstance() |
Создаёт новый экземпляр с поддержкой пространств имён встроенной системной реализации DocumentBuilderFactory. |
abstract DocumentBuilder |
newDocumentBuilder() |
Создаёт новый экземпляр DocumentBuilder с использованием текущих настроек. |
static DocumentBuilderFactory |
newInstance() |
Получает новый экземпляр DocumentBuilderFactory. |
static DocumentBuilderFactory |
newInstance |
Получает новый экземпляр DocumentBuilderFactory по имени класса. |
static DocumentBuilderFactory |
newNSInstance() |
Создаёт новый экземпляр DocumentBuilderFactory с поддержкой пространств имён. |
static DocumentBuilderFactory |
newNSInstance |
Создаёт новый экземпляр DocumentBuilderFactory с поддержкой пространств имён по имени класса. |
abstract void |
setAttribute |
Позволяет пользователю задавать определённые атрибуты базовой реализации. |
void |
setCoalescing |
Указывает, что созданный этим кодом парсер будет преобразовывать узлы CDATA в текстовые узлы и добавлять их к соседнему (если он есть) текстовому узлу. |
void |
setExpandEntityReferences |
Указывает, что созданный этим кодом парсер будет раскрывать узлы ссылок на сущности. |
abstract void |
setFeature |
Задаёт функцию для этого DocumentBuilderFactory и создаваемых этой фабрикой объектов DocumentBuilder. |
void |
setIgnoringComments |
Указывает, что созданный этим кодом парсер будет игнорировать комментарии. |
void |
setIgnoringElementContentWhitespace |
Указывает, что парсеры, созданные этой фабрикой, должны удалять пробельные символы в содержимом элементов (так называемые «незначащие пробельные символы») при разборе XML-документов (см. раздел 2.10 рекомендации XML). |
void |
setNamespaceAware |
Указывает, что созданный этим кодом парсер будет поддерживать пространства имён XML. |
void |
setSchema |
Задаёт объект Schema, который будет использоваться парсерами, созданными этой фабрикой. |
void |
setValidating |
Указывает, что созданный этим кодом парсер будет проверять документы по мере их разбора. |
void |
setXIncludeAware |
Задаёт состояние обработки XInclude. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, является ли другой объект «равным» этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения определённого периода реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения определённого периода реального времени. |
Подробное описание конструкторов
DocumentBuilderFactory
protected DocumentBuilderFactory()
newInstance().Подробное описание методов
newDefaultNSInstance
public static DocumentBuilderFactory newDefaultNSInstance()
DocumentBuilderFactory, используемой по умолчанию в системе. Синтаксические анализаторы, создаваемые экземпляром фабрики, по умолчанию поддерживают пространства имён XML.- Требования к реализации:
- Помимо создания экземпляра фабрики тем же способом, что и в
newDefaultInstance(), этот метод должен установить для NamespaceAware значение true. - Возвращает:
- новый экземпляр встроенной реализации
DocumentBuilderFactory, используемой по умолчанию в системе. - С версии:
- 13
newNSInstance
public static DocumentBuilderFactory newNSInstance()
DocumentBuilderFactory. Синтаксические анализаторы, создаваемые экземпляром фабрики, по умолчанию поддерживают пространства имён XML.- Требования к реализации:
- Помимо создания экземпляра фабрики тем же способом, что и в
newInstance(), этот метод должен установить для NamespaceAware значение true. - Возвращает:
- новый экземпляр
DocumentBuilderFactory - Выбрасывает:
-
FactoryConfigurationError— в случае ошибки конфигурации службы или если реализация недоступна либо не может быть создана. - С версии:
- 13
newNSInstance
public static DocumentBuilderFactory newNSInstance(String factoryClassName, ClassLoader classLoader)
DocumentBuilderFactory по имени класса. Синтаксические анализаторы, создаваемые экземпляром фабрики, по умолчанию поддерживают пространства имён XML.- Требования к реализации:
- Помимо создания экземпляра фабрики тем же способом, что и в
newInstance(java.lang.String, java.lang.ClassLoader), этот метод должен установить для NamespaceAware значение true. - Параметры:
-
factoryClassName— полное имя класса фабрики, реализующегоjavax.xml.parsers.DocumentBuilderFactory. -
classLoader—ClassLoader, используемый для загрузки класса фабрики. Если он равенnull, для загрузки класса фабрики используется контекстный classLoader текущегоThread. - Возвращает:
- новый экземпляр
DocumentBuilderFactory - Выбрасывает:
-
FactoryConfigurationError— еслиfactoryClassNameравноnullили класс фабрики не удаётся загрузить либо создать. - С версии:
- 13
newDefaultInstance
public static DocumentBuilderFactory newDefaultInstance()
DocumentBuilderFactory, используемой по умолчанию в системе.- Возвращает:
- Новый экземпляр встроенной реализации
DocumentBuilderFactory, используемой по умолчанию в системе. - С версии:
- 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 по имени класса. Этот метод полезен, если в classpath присутствует несколько поставщиков. Он предоставляет приложению больше контроля, позволяя указать, какой поставщик следует загрузить. Получив ссылку на 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 в текстовые узлы и добавлять их к соседнему (если он есть) текстовому узлу; в противном случае false.
isNamespaceAware
public boolean isNamespaceAware()
- Возвращает:
- true, если фабрика настроена на создание синтаксических анализаторов с поддержкой пространств имён; в противном случае false.
isValidating
public boolean isValidating()
- Возвращает:
- true, если фабрика настроена на создание синтаксических анализаторов, проверяющих содержимое XML во время разбора; в противном случае false.
isIgnoringElementContentWhitespace
public boolean isIgnoringElementContentWhitespace()
- Возвращает:
- true, если фабрика настроена на создание синтаксических анализаторов, игнорирующих незначащие пробельные символы в содержимом элементов; в противном случае false.
isExpandEntityReferences
public boolean isExpandEntityReferences()
- Возвращает:
- true, если фабрика настроена на создание синтаксических анализаторов, раскрывающих узлы ссылок на сущности; в противном случае false.
isIgnoringComments
public boolean isIgnoringComments()
- Возвращает:
- true, если фабрика настроена на создание синтаксических анализаторов, игнорирующих комментарии; в противном случае false.
isCoalescing
public boolean isCoalescing()
- Возвращает:
- true, если фабрика настроена на создание синтаксических анализаторов, преобразующих узлы CDATA в текстовые узлы и добавляющих их к соседнему (если он есть) текстовому узлу; в противном случае 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 и внешним ссылкам на сущности протоколами, указанными в этом свойстве. Если из-за ограничения, заданного этим свойством, доступ запрещён во время разбора, методы разбора, определённые вDocumentBuilder, выбросятSAXException. - Задание свойства
XMLConstants.ACCESS_EXTERNAL_SCHEMAограничивает доступ к внешней схеме, заданной атрибутом schemaLocation, протоколами, указанными в этом свойстве. Если из-за ограничения, заданного этим свойством, доступ запрещён во время разбора, методы разбора, определённые вDocumentBuilder, выбросятSAXException.
- Параметры:
-
name— имя атрибута. -
value— значение атрибута. - Выбрасывает:
-
IllegalArgumentException— выбрасывается, если базовая реализация не распознаёт атрибут.
getAttribute
public abstract Object getAttribute(String name) throws IllegalArgumentException
- Параметры:
-
name— имя атрибута. - Возвращает:
- value — значение атрибута.
- Выбрасывает:
-
IllegalArgumentException— выбрасывается, если базовая реализация не распознаёт атрибут.
setFeature
public abstract void setFeature(String name, boolean value) throws ParserConfigurationException
DocumentBuilderFactory и созданных этой фабрикой DocumentBuilder. Имена функций — это полные URI. Реализации могут определять собственные функции. Если эта DocumentBuilderFactory или создаваемые ею DocumentBuilder не поддерживают функцию, выбрасывается ParserConfigurationException. DocumentBuilderFactory может предоставлять значение функции, но не иметь возможности изменить его состояние.
Все реализации должны поддерживать функцию XMLConstants.FEATURE_SECURE_PROCESSING. При следующих значениях функции:
-
true: реализация ограничивает обработку XML в соответствии с установленными для реализации пределами. Например, это могут быть ограничения на раскрытие сущностей и конструкции XML Schema, требующие значительных ресурсов. Если обработка XML ограничивается по соображениям безопасности, об этом сообщается вызовом зарегистрированного методаErrorHandler.fatalError(SAXParseException exception). См.DocumentBuilder.setErrorHandler(org.xml.sax.ErrorHandler errorHandler). -
false: реализация обрабатывает XML в соответствии со спецификациями XML, не учитывая возможные ограничения реализации.
- Параметры:
-
name— имя функции. -
value— равно ли состояние функцииtrueилиfalse. - Выбрасывает:
-
ParserConfigurationException— если этаDocumentBuilderFactoryили создаваемые еюDocumentBuilderне поддерживают эту функцию. -
NullPointerException— если параметрnameравен null. - С версии:
- 1.5
getFeature
public abstract boolean getFeature(String name) throws ParserConfigurationException
Имена функций — это полные URI. Реализации могут определять собственные функции. Если эта DocumentBuilderFactory или создаваемые ею DocumentBuilder не поддерживают функцию, выбрасывается ParserConfigurationException. DocumentBuilderFactory может предоставлять значение функции, но не иметь возможности изменить его состояние.
- Параметры:
-
name— имя функции. - Возвращает:
- Состояние функции с указанным именем.
- Выбрасывает:
-
ParserConfigurationException— если этаDocumentBuilderFactoryили создаваемые еюDocumentBuilderне поддерживают эту функцию. - С версии:
- 1.5
getSchema
public Schema getSchema()
Schema, заданный с помощью метода setSchema(Schema schema).- Возвращает:
- объект
Schema, последний раз заданный с помощью методаsetSchema(Schema), или null, если метод не вызывался после созданияDocumentBuilderFactory. - Выбрасывает:
-
UnsupportedOperationException— если реализация не переопределяет этот метод. - С версии:
- 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. Однако синтаксическим анализаторам и схемам разрешается использовать специфичные для реализации пользовательские механизмы, если они обеспечивают результат, описанный в спецификации.
- Параметры:
-
schema—Schemaдля использования илиnullдля удаления схемы. - Выбрасывает:
-
UnsupportedOperationException— если реализация не переопределяет этот метод. - С версии:
- 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, 2025, 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.