Spec-Zone.ru › OpenJDK 27

Класс TransformerFactory

java.lang.Object
javax.xml.transform.TransformerFactory
Прямые известные подклассы:
SAXTransformerFactory
public abstract class TransformerFactory extends Object

Экземпляр TransformerFactory можно использовать для создания объектов Transformer и Templates.

Системное свойство, определяющее, какую реализацию Factory создать, называется "javax.xml.transform.TransformerFactory". Это свойство указывает конкретный подкласс абстрактного класса TransformerFactory. Если свойство не определено, используется реализация, предусмотренная платформой по умолчанию.

Начиная с:
1.5

Краткое описание конструкторов

TransformerFactory()
Модификатор Конструктор Описание
protected
Конструктор по умолчанию намеренно объявлен защищённым.

Краткое описание методов

Модификатор и тип Метод Описание
abstract Source getAssociatedStylesheet(Source source, String media, String title, String charset)
Получает спецификации таблиц стилей, связанные с документом XML Source с помощью инструкции обработки xml-stylesheet и соответствующие заданным критериям.
abstract Object getAttribute(String name)
Позволяет пользователю получать определённые атрибуты базовой реализации.
abstract ErrorListener getErrorListener()
Получает обработчик событий ошибок для TransformerFactory.
abstract boolean getFeature(String name)
Возвращает значение функции.
abstract URIResolver getURIResolver()
Получает объект, используемый по умолчанию во время преобразования для разрешения URI, применяемых в document(), xsl:import или xsl:include.
static TransformerFactory newDefaultInstance()
Создаёт новый экземпляр встроенной реализации TransformerFactory, используемой системой по умолчанию.
static TransformerFactory newInstance()
Получает новый экземпляр TransformerFactory.
static TransformerFactory newInstance(String factoryClassName, ClassLoader classLoader)
Получает новый экземпляр TransformerFactory по имени класса фабрики.
abstract Templates newTemplates(Source source)
Обрабатывает Source и преобразует его в объект Templates, представляющий собой скомпилированное представление исходного кода.
abstract Transformer newTransformer()
Создаёт новый Transformer, который копирует Source в Result, то есть выполняет «тождественное преобразование».
abstract Transformer newTransformer(Source source)
Обрабатывает Source и преобразует его в Transformer Object.
abstract void setAttribute(String name, Object value)
Позволяет пользователю задавать определённые атрибуты базовой реализации.
abstract void setErrorListener(ErrorListener listener)
Задаёт обработчик событий ошибок для TransformerFactory, используемый при обработке инструкций преобразования, а не при выполнении самого преобразования.
abstract void setFeature(String name, boolean value)
Задаёт функцию для данного TransformerFactory и создаваемых этой фабрикой Transformer или Template.
abstract void setURIResolver(URIResolver resolver)
Задаёт объект, используемый по умолчанию во время преобразования для разрешения URI, применяемых в document(), xsl:import или xsl:include.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
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(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени.

Подробное описание конструкторов

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
См. также:
  • newInstance()

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.
См. также:
  • Преобразования XSL (XSLT), версия 1.0

newTransformer

public abstract Transformer newTransformer() throws TransformerConfigurationException
Создаёт новый Transformer, который копирует Source в Result, то есть выполняет «тождественное преобразование».
Возвращает:
Объект Transformer, который можно использовать для выполнения преобразования в одном потоке; значение никогда не равно null.
Выбрасывает:
TransformerConfigurationException — если невозможно создать экземпляр Transformer.

newTemplates

public abstract Templates newTemplates(Source source) throws TransformerConfigurationException
Обрабатывает Source и преобразует его в объект Templates, представляющий собой скомпилированное представление исходного кода. Этот объект Templates можно использовать одновременно в нескольких потоках. Создание объекта Templates позволяет TransformerFactory оптимизировать инструкции преобразования, не снижая производительность во время выполнения.
Параметры:
source — объект, содержащий URL, входной поток и т. д.
Возвращает:
Объект Templates, пригодный для выполнения преобразований; значение никогда не равно null.
Выбрасывает:
TransformerConfigurationException — если при разборе не удалось создать объект Templates.

getAssociatedStylesheet

public abstract Source getAssociatedStylesheet(Source source, String media, String title, String charset) throws TransformerConfigurationException
Получает спецификации таблиц стилей, связанные с документом XML Source с помощью инструкции обработки xml-stylesheet и соответствующие заданным критериям. Обратите внимание, что метод может вернуть несколько таблиц стилей; в этом случае они применяются так, как если бы представляли собой список импортов или каскадов в одной таблице стилей.
Параметры:
source — исходный документ XML.
media — атрибут media, которому должно соответствовать значение. Может быть равен null; в этом случае используются предпочтительные шаблоны (то есть alternate = no).
title — значение атрибута title, которому должно соответствовать значение. Может быть равно null.
charset — значение атрибута charset, которому должно соответствовать значение. Может быть равно null.
Возвращает:
Source Object, подходящий для передачи в TransformerFactory.
Выбрасывает:
TransformerConfigurationException — выбрасывается, если во время разбора source произошла ошибка Exception.
См. также:
  • Связывание таблиц стилей с документами XML, версия 1.0

setURIResolver

public abstract void setURIResolver(URIResolver resolver)
Задаёт объект, используемый по умолчанию во время преобразования для разрешения URI, применяемых в document(), xsl:import или xsl:include.
Параметры:
resolver — объект, реализующий интерфейс URIResolver, или null.

getURIResolver

public abstract URIResolver getURIResolver()
Получает объект, используемый по умолчанию во время преобразования для разрешения URI, применяемых в document(), xsl:import или xsl:include.
Возвращает:
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)
Задаёт обработчик событий ошибок для TransformerFactory, используемый при обработке инструкций преобразования, а не при выполнении самого преобразования. Если ErrorListener обработчик равен null, выбрасывается IllegalArgumentException.
Параметры:
listener — новый обработчик ошибок.
Выбрасывает:
IllegalArgumentException — если listener имеет значение null

getErrorListener

public abstract ErrorListener getErrorListener()
Получает обработчик событий ошибок для TransformerFactory.
Возвращает:
Текущий обработчик ошибок, который никогда не должен быть равен null.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API