Класс 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. |
Подробное описание конструкторов
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 по имени класса. Этот метод полезен, если в пути к классам находятся несколько поставщиков. Он предоставляет приложению больше контроля, позволяя указать, какой поставщик следует загрузить. Получив ссылку на 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— имя атрибута. - Возвращает:
- значение атрибута.
- Выбрасывает:
-
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 нельзя. При такой конфигурации вызов метода newDocumentBuilder() приведёт к выбрасыванию исключения ParserConfigurationException.
Примечание для разработчиков реализаций
Парсер должен работать с любой реализацией Schema. При этом парсеры и схемы могут использовать собственные механизмы, специфичные для реализации, если они обеспечивают результат, описанный в спецификации.
- Параметры:
-
schema—Schema, которую следует использовать, илиnullдля удаления схемы. - Выбрасывает:
-
UnsupportedOperationException— если реализация не переопределяет этот метод. - С версии:
- 1.5
setXIncludeAware
public void setXIncludeAware(boolean state)
Если в экземпляре документа обнаружена разметка XInclude, следует ли обрабатывать её согласно спецификации включений XML (XInclude), версия 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.xml/javax/xml/parsers/DocumentBuilderFactory.html