Класс 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() |
Создаёт новый экземпляр встроенной реализации по умолчанию. |
static DocumentBuilderFactory |
newDefaultNSInstance() |
Создаёт новый экземпляр NamespaceAware встроенной реализации по умолчанию. |
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 и добавит их к смежному (если есть) узлу 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. - Возвращает:
- новый экземпляр встроенной реализации по умолчанию
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, используется текущийThreadконтекстный загрузчик классов. - Возвращает:
- новый экземпляр
DocumentBuilderFactory - Изначает:
-
FactoryConfigurationError- еслиfactoryClassNamenullили класс фабрики не может быть загружен или создан. - С:
- 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, используется текущийThreadконтекстный загрузчик классов. - Возвращает:
- Новый экземпляр
DocumentBuilderFactory - Изначает:
-
FactoryConfigurationError- еслиfactoryClassNamenullили класс фабрики не может быть загружен или создан. - С:
- 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()
- Возвращает:
- 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, внешним ссылкам на сущности протоколами, указанными в свойстве. Если доступ запрещён во время разбора из-за ограничения этого свойства,SAXExceptionбудет брошен методами разбора, определёнными вDocumentBuilder. - Установка свойства
XMLConstants.ACCESS_EXTERNAL_SCHEMAограничивает доступ к внешним схемам, устанавливаемым атрибутом schemaLocation, протоколами, указанными в свойстве. Если доступ запрещён во время разбора из-за ограничения этого свойства,SAXExceptionбудет брошен методами разбора, определёнными вDocumentBuilder.
- Параметры:
-
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
Имена свойств — полностью квалифицированные URI . Реализации могут определять свои собственные свойства. ParserConfigurationException выбрасывается, если эта фабрика или созданные ею парсеры не поддерживают свойство. Возможно, что фабрика предоставляет значение свойства, но не может изменить его состояние.
Все реализации обязаны поддерживать свойство 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- если эта фабрика или созданные ею парсеры не поддерживают это свойство. -
NullPointerException- Если параметрnameравен null. - Since:
- 1.5
getFeature
public abstract boolean getFeature(String name) throws ParserConfigurationException
Имена свойств — полностью квалифицированные URI . Реализации могут определять свои собственные свойства. ParserConfigurationException выбрасывается, если эта фабрика или созданные ею парсеры не поддерживают свойство. Возможно, что фабрика предоставляет значение свойства, но не может изменить его состояние.
- Параметры:
-
name- Имя свойства. - Возвращает:
- Состояние указанного свойства.
- Исключения:
-
ParserConfigurationException- если эта фабрика или созданные ею парсеры не поддерживают это свойство. - Since:
- 1.5
getSchema
public Schema getSchema()
Schema, указанный методом setSchema(Schema schema).- Возвращает:
- объект
Schema, последний установленный методомsetSchema(Schema), или null, если метод не вызывался с момента создания фабрикиDocumentBuilderFactory. - Исключения:
-
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 является ошибкой. Такая конфигурация при вызове newDocumentBuilder() вызовет исключение ParserConfigurationException.
Примечание для разработчиков
Парсер должен уметь работать с любой реализацией 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.
- Parameters:
-
state- Установить обработку XInclude наtrueилиfalse - Throws:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод. - Since:
- 1.5
isXIncludeAware
public boolean isXIncludeAware()
- Returns:
- текущее состояние обработки XInclude
- Throws:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод. - Since:
- 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://download.java.net/java/early_access/jdk24/docs/api/java.xml/javax/xml/parsers/DocumentBuilderFactory.html