Класс TransformerFactory
- Прямые известные подклассы:
SAXTransformerFactory
public abstract class TransformerFactory extends Object
Экземпляр TransformerFactory можно использовать для создания объектов Transformer и Templates.
Системное свойство, определяющее, какую реализацию Factory создать, называется "javax.xml.transform.TransformerFactory". Это свойство указывает конкретный подкласс абстрактного класса TransformerFactory. Если свойство не задано, используется реализация по умолчанию для платформы.
- Начиная с версии:
- 1.5
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор по умолчанию намеренно объявлен как защищённый. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract Source |
getAssociatedStylesheet |
Получает спецификацию(и) таблицы стилей, связанную(ые) с XML-документом Source посредством инструкции обработки xml-stylesheet и соответствующую(ие) заданным критериям. |
abstract Object |
getAttribute |
Позволяет пользователю получать определённые атрибуты базовой реализации. |
abstract ErrorListener |
getErrorListener() |
Получает обработчик событий ошибок для TransformerFactory. |
abstract boolean |
getFeature |
Ищет значение функции. |
abstract URIResolver |
getURIResolver() |
Получает объект, который по умолчанию используется при преобразовании для разрешения URI, применяемых в document(), xsl:import или xsl:include. |
static TransformerFactory |
newDefaultInstance() |
Создаёт новый экземпляр встроенной системной реализации TransformerFactory по умолчанию. |
static TransformerFactory |
newInstance() |
Получает новый экземпляр TransformerFactory. |
static TransformerFactory |
newInstance |
Создаёт новый экземпляр TransformerFactory по имени класса фабрики. |
abstract Templates |
newTemplates |
Обрабатывает Source и преобразует его в объект 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()
TransformerFactory, используемой в системе по умолчанию.- Возвращает:
- Новый экземпляр встроенной реализации
TransformerFactory, используемой в системе по умолчанию. - Начиная с:
- 9
newInstance
public static TransformerFactory newInstance() throws TransformerFactoryConfigurationError
TransformerFactory. Этот метод использует механизм поиска JAXP, чтобы определить класс реализации TransformerFactory, который необходимо загрузить. Получив ссылку на TransformerFactory, приложение может использовать фабрику для настройки и получения экземпляров преобразователя.
- Возвращает:
- Новый экземпляр TransformerFactory; значение никогда не равно null.
- Исключения:
-
TransformerFactoryConfigurationError— возникает в случае ошибки конфигурации службы либо если реализация недоступна или не может быть создана.
newInstance
public static TransformerFactory newInstance(String factoryClassName, ClassLoader classLoader) throws TransformerFactoryConfigurationError
TransformerFactory по имени класса фабрики. Этот метод полезен, если в пути к классам имеется несколько поставщиков. Он предоставляет приложению больше контроля, позволяя указать, какой поставщик следует загрузить. Получив ссылку на TransformerFactory, приложение может использовать фабрику для настройки и получения экземпляров преобразователя.
Совет по устранению неполадок
Установка системного свойства jaxp.debug приведёт к тому, что этот метод выведет множество отладочных сообщений в System.err о выполняемых действиях и местах поиска.
Если возникли проблемы, попробуйте:
java -Djaxp.debug=1 YourProgram ....
- Параметры:
-
factoryClassName— полное имя класса фабрики, реализующегоjavax.xml.transform.TransformerFactory. -
classLoader—ClassLoader, используемый для загрузки класса фабрики. Еслиnull, для загрузки класса фабрики используется контекстный ClassLoader текущегоThread. - Возвращает:
- Новый экземпляр TransformerFactory; значение никогда не равно null.
- Исключения:
-
TransformerFactoryConfigurationError— еслиfactoryClassNameравноnullили класс фабрики не удаётся загрузить либо создать. - Начиная с:
- 1.6
- См. также:
newTransformer
public abstract Transformer newTransformer(Source source) throws TransformerConfigurationException
Source и создаёт объект Transformer Object. Source — это документ XSLT, соответствующий спецификации преобразований XSL (XSLT), версия 1.0. Следует соблюдать осторожность и не использовать этот Transformer одновременно в нескольких Thread. Разные TransformerFactories можно одновременно использовать в разных Thread.- Параметры:
-
source—Sourceдокумента XSLT, используемый для созданияTransformer. Примеры XML-Source:DOMSource,SAXSourceиStreamSource. - Возвращает:
- Объект
Transformer, который можно использовать для выполнения преобразования в одномThread; значение никогда не равно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 = no). -
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. Реализации могут определять собственные функции. Если этот TransformerFactory, создаваемые им Transformer или Template не поддерживают функцию, возникает TransformerConfigurationException. 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)
Имена функций представляют собой полностью квалифицированные URI. Реализации могут определять собственные функции. Если этот TransformerFactory, создаваемые им Transformer или Template не поддерживают функцию, возвращается false. TransformerFactory может предоставлять значение функции, но не иметь возможности изменить её состояние.
- Параметры:
-
name— имя функции. - Возвращает:
- Текущее состояние функции:
trueилиfalse. - Исключения:
-
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. Если доступ запрещён из-за ограничений этого свойства во время преобразования, методTransformer.transform(Source, Result)выбрасываетTransformerException.Доступ к внешним DTD в таблице стилей ограничивается протоколами, указанными в свойстве
XMLConstants.ACCESS_EXTERNAL_DTD. Если доступ запрещён из-за ограничений этого свойства при создании преобразователя, методnewTransformer(Source)выбрасываетTransformerConfigurationException.Доступ к внешним ссылкам, заданным инструкцией обработки таблицы стилей, а также элементами Import и Include, ограничивается протоколами, указанными в свойстве
XMLConstants.ACCESS_EXTERNAL_STYLESHEET. Если доступ запрещён из-за ограничений этого свойства при создании преобразователя, методnewTransformer(Source)выбрасываетTransformerConfigurationException.Доступ к внешним документам через функцию document в XSLT ограничивается протоколами, указанными в этом свойстве. Если доступ запрещён из-за ограничений этого свойства во время преобразования, метод
Transformer.transform(Source, Result)выбрасываетTransformerException.
- Параметры:
-
name— имя атрибута. -
value— значение атрибута. - Исключения:
-
IllegalArgumentException— если реализация не распознаёт атрибут.
getAttribute
public abstract Object getAttribute(String name)
IllegalArgumentException, если базовая реализация не распознает атрибут.- Параметры:
-
name— имя атрибута. - Возвращает:
- value — значение атрибута.
- Вызывает исключение:
-
IllegalArgumentException— если реализация не распознает атрибут.
setErrorListener
public abstract void setErrorListener(ErrorListener listener)
IllegalArgumentException, если обработчик ErrorListener равен null.- Параметры:
-
listener— новый обработчик ошибок. - Вызывает исключение:
-
IllegalArgumentException— еслиlistenerравенnull
getErrorListener
public abstract ErrorListener getErrorListener()
- Возвращает:
- Текущий обработчик ошибок, который никогда не должен быть равен 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://docs.oracle.com/en/java/javase/25/docs/api/java.xml/javax/xml/transform/TransformerFactory.html