Класс TransformerFactory
- Прямые известные подклассы:
SAXTransformerFactory
public abstract class TransformerFactory extends Object
Экземпляр TransformerFactory может использоваться для создания объектов Transformer и Templates.
Система свойств, определяющая, какую реализацию фабрики создать, называется "javax.xml.transform.TransformerFactory". Это свойство задаёт конкретный подкласс абстрактного класса TransformerFactory. Если свойство не определено, используется платформа по умолчанию.
- С момента:
- 1.5
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор по умолчанию намеренно защищён. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Source |
getAssociatedStylesheet |
Получение спецификации(й) таблиц стилей, связанных с XML- Source документом через инструкцию обработки XML xml-stylesheet, соответствующую заданным критериям. |
abstract Object |
getAttribute |
Позволяет пользователю получать определённые атрибуты на базовой реализации. |
abstract ErrorListener |
getErrorListener() |
Получение обработчика событий ошибок для TransformerFactory. |
abstract boolean |
getFeature |
Поиск значения функциональности. |
abstract URIResolver |
getURIResolver() |
Получение объекта, используемого по умолчанию во время преобразования для разрешения URI, используемых в document(), xsl:import или xsl:include. |
static TransformerFactory |
newDefaultInstance() |
Создание нового экземпляра встроенной реализации по умолчанию системы. |
static TransformerFactory |
newInstance() |
Получение нового экземпляра TransformerFactory. |
static TransformerFactory |
newInstance |
Получение нового экземпляра TransformerFactory по имени класса фабрики. |
abstract Templates |
newTemplates |
Обработка источника в объект Templates, который представляет собой скомпилированное представление источника. |
abstract Transformer |
newTransformer() |
Создание нового Transformer, который выполняет копирование Source в Result, т.е. «преобразование тождества». |
abstract Transformer |
newTransformer |
Обработка Source в Transformer Object. |
abstract void |
setAttribute |
Позволяет пользователю устанавливать определённые атрибуты на базовой реализации. |
abstract void |
setErrorListener |
Установка обработчика событий ошибок для TransformerFactory, который используется для обработки инструкций преобразования, а не для самого преобразования. |
abstract void |
setFeature |
Установка функциональности для этого TransformerFactory и Transformer или Template, созданных этой фабрикой. |
abstract void |
setURIResolver |
Установка объекта, используемого по умолчанию во время преобразования для разрешения URI, используемых в document(), xsl:import или xsl:include. |
Подробное описание конструкторов
TransformerFactory
protected TransformerFactory()
Подробное описание методов
newDefaultInstance
public static TransformerFactory newDefaultInstance()
- Возвращает:
- Новый экземпляр системной реализации по умолчанию.
- С:
- 9
newInstance
public static TransformerFactory newInstance() throws TransformerFactoryConfigurationError
После получения ссылки на фабрику преобразований приложение может использовать её для настройки и получения экземпляров преобразователей.
- Возвращает:
- Новый экземпляр TransformerFactory, никогда не null.
- Исключение:
-
TransformerFactoryConfigurationError- Бросается в случае ошибки конфигурации службы или если реализация недоступна или не может быть создана.
newInstance
public static TransformerFactory newInstance(String factoryClassName, ClassLoader classLoader) throws TransformerFactoryConfigurationError
После получения ссылки на фабрику преобразований приложение может использовать её для настройки и получения экземпляров преобразователей.
Совет по устранению неполадок
Установив системную переменную jaxp.debug, этот метод будет выводить много сообщений отладки в System.err, описывая действия и место поиска.
Если у вас возникли проблемы, попробуйте:
java -Djaxp.debug=1 YourProgram ....
- Параметры:
-
factoryClassName- полное квалифицированное имя класса фабрики, предоставляющего реализациюjavax.xml.transform.TransformerFactory. -
classLoader-ClassLoader, используемый для загрузки класса фабрики. Еслиnullиспользуется текущий контекст загрузчика классовThread. - Возвращает:
- Новый экземпляр TransformerFactory, никогда не null.
- Исключение:
-
TransformerFactoryConfigurationError- еслиfactoryClassNameимеет значениеnullили класс фабрики не может быть загружен или создан. - С:
- 1.6
- См. также:
newTransformer
public abstract Transformer newTransformer(Source source) throws TransformerConfigurationException
Source, чтобы создать экземпляр Transformer Object. Source представляет собой документ XSLT, соответствующий XSL Transformations (XSLT) Version 1.0. Необходимо следить, чтобы этот Transformer не использовался в нескольких Thread, работающих одновременно. Разные TransformerFactories могут использоваться одновременно разными Thread.- Параметры:
-
source-Sourceдокумента XSLT, используемого для созданияTransformer. Примеры XMLSourceвключаютDOMSource,SAXSourceиStreamSource. - Возвращает:
- Объект
Transformer, который может быть использован для выполнения преобразования в отдельном потоке, никогда неnull. - Исключение:
-
TransformerConfigurationException- Бросается при ошибках при разбореSourceили если невозможно создать экземплярTransformer. - См. также:
newTransformer
public abstract Transformer newTransformer() throws TransformerConfigurationException
Transformer, который выполняет копирование Source в Result, то есть "тождественное преобразование".- Возвращает:
- Объект Transformer, который может быть использован для выполнения преобразования в отдельном потоке, никогда не null.
- Исключение:
-
TransformerConfigurationException- При невозможности создания экземпляраTransformer.
newTemplates
public abstract Templates newTemplates(Source source) throws TransformerConfigurationException
- Параметры:
-
source- Объект, содержащий URL, поток ввода и т.д. - Возвращает:
- Объект Templates, пригодный для преобразований, никогда не
null. - Исключение:
-
TransformerConfigurationException- При ошибке разбора при создании объекта Templates.
getAssociatedStylesheet
public abstract Source getAssociatedStylesheet(Source source, String media, String title, String charset) throws TransformerConfigurationException
Source документом с помощью инструкции обработки xml-stylesheet, соответствующей заданным критериям. Обратите внимание, что может быть возвращено несколько стилей, которые применяются как список импортов или каскадов в одном стиле.- Параметры:
-
source- XML-документ-источник. -
media- Атрибут media для соответствия. Может быть null, в этом случае будут использоваться предпочтительные шаблоны (то есть alternate = нет). -
title- Значение атрибута title для соответствия. Может быть null. -
charset- Значение атрибута charset для соответствия. Может быть null. - Возвращает:
- Объект
SourceObject, подходящий для передачи вTransformerFactory. - Исключение:
-
TransformerConfigurationException- БросаетсяException, если произошла ошибка при разбореsource. - См. также:
setURIResolver
public abstract void setURIResolver(URIResolver resolver)
- Параметры:
-
resolver- Объект, реализующий интерфейс URIResolver, или null.
getURIResolver
public abstract URIResolver getURIResolver()
- Возвращает:
- URIResolver, установленный с помощью setURIResolver.
setFeature
public abstract void setFeature(String name, boolean value) throws TransformerConfigurationException
Устанавливает параметр для этой TransformerFactory и Transformer или Template, созданных этой фабрикой.
Имена параметров - полные квалифицированные URI. Реализации могут определять свои собственные параметры. Бросается TransformerConfigurationException, если эта TransformerFactory или созданные ею Transformer или Template не поддерживают параметр. Возможна ситуация, когда TransformerFactory экспонирует значение параметра, но не может изменить его состояние.
Все реализации обязаны поддерживать параметр XMLConstants.FEATURE_SECURE_PROCESSING. Когда параметр:
-
true: реализация ограничит обработку XML для соответствия ограничениям реализации и будет вести себя безопасно в соответствии с определением реализации. Примеры включают разрешение пользовательских стилей и функций. Если обработка XML ограничена по соображениям безопасности, об этом будет сообщено с помощью вызова зарегистрированногоErrorListener.fatalError(TransformerException exception). См.setErrorListener(ErrorListener listener). -
false: реализация будет обрабатывать XML в соответствии со спецификациями XML без учёта возможных ограничений реализации.
- Параметры:
-
name- Имя параметра. -
value- Состояние параметраtrueилиfalse. - Исключение:
-
TransformerConfigurationException- если этаTransformerFactoryили созданные еюTransformerилиTemplateне поддерживают этот параметр. -
NullPointerException- Если параметрnameимеет значение null.
getFeature
public abstract boolean getFeature(String name)
Имена параметров полностью квалифицированы URIs. Реализации могут определять свои собственные параметры. false возвращается, если этот TransformerFactory или Transformer или Template не поддерживают параметр. Возможно, что TransformerFactory может экспонировать значение параметра, но не может изменить его состояние.
- Parameters:
-
name- Имя параметра. - Returns:
- Текущее состояние параметра,
trueилиfalse. - Throws:
-
NullPointerException- Если параметрnameравен null.
setAttribute
public abstract void setAttribute(String name, Object value)
IllegalArgumentException выбрасывается, если базовая реализация не распознаёт атрибут. Все реализации, реализующие JAXP 1.5 или новее, обязаны поддерживать свойства XMLConstants.ACCESS_EXTERNAL_DTD и XMLConstants.ACCESS_EXTERNAL_STYLESHEET.
-
Доступ к внешним DTD в исходном файле ограничен протоколами, указанными в свойстве
XMLConstants.ACCESS_EXTERNAL_DTD. Если доступ запрещен во время преобразования из-за ограничения этого свойства,TransformerExceptionбудет выброшен методомTransformer.transform(Source, Result).Доступ к внешним DTD в стилевом файле ограничен протоколами, указанными в свойстве
XMLConstants.ACCESS_EXTERNAL_DTD. Если доступ запрещен во время создания нового трансформатора из-за ограничения этого свойства,TransformerConfigurationExceptionбудет выброшен методомnewTransformer(Source).Доступ к внешним ссылкам, заданным стилевым обработчиком инструкций, элементом Import и Include ограничен протоколами, указанными в свойстве
XMLConstants.ACCESS_EXTERNAL_STYLESHEET. Если доступ запрещен во время создания нового трансформатора из-за ограничения этого свойства,TransformerConfigurationExceptionбудет выброшен методомnewTransformer(Source).Доступ к внешнему документу через функцию XSLT документа ограничен протоколами, указанными в свойстве. Если доступ запрещен во время преобразования из-за ограничения этого свойства,
TransformerExceptionбудет выброшен методомTransformer.transform(Source, Result).
- Parameters:
-
name- Название атрибута. -
value- Значение атрибута. - Throws:
-
IllegalArgumentException- Когда реализация не распознает атрибут.
getAttribute
public abstract Object getAttribute(String name)
IllegalArgumentException выбрасывается, если базовая реализация не распознает атрибут.- Parameters:
-
name- Название атрибута. - Returns:
- Значение атрибута.
- Throws:
-
IllegalArgumentException- Когда реализация не распознает атрибут.
setErrorListener
public abstract void setErrorListener(ErrorListener listener)
IllegalArgumentException выбрасывается, если обработчик ошибок ErrorListener null.- Parameters:
-
listener- Новый обработчик ошибок. - Throws:
-
IllegalArgumentException- Когдаlistenernull
getErrorListener
public abstract ErrorListener getErrorListener()
- Returns:
- Текущий обработчик ошибок, который никогда не должен быть null.
© 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/transform/TransformerFactory.html