Класс 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 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() |
Создание нового экземпляра встроенной реализации по умолчанию системы. |
static TransformerFactory |
newInstance() |
Получение нового экземпляра TransformerFactory. |
static TransformerFactory |
newInstance |
Получение нового экземпляра TransformerFactory по имени класса фабрики. |
abstract Templates |
newTemplates |
Обработка исходного кода в объект шаблонов, который представляет собой скомпилированное представление исходного кода. |
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текущий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, который может использоваться для выполнения преобразования в одном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. Реализации могут определять свои собственные атрибуты. 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)
Имена параметров полностью квалифицированы URI
. Реализации могут определять свои собственные параметры. 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 document ограничен протоколами, указанными в свойстве. Если доступ запрещён во время преобразования из-за ограничения этого свойства,
TransformerExceptionбудет выброшено методомTransformer.transform(Source, Result).
- Parameters:
-
name- Название атрибута. -
value- Значение атрибута. - Throws:
-
IllegalArgumentException- Когда реализация не распознаёт атрибут.
getAttribute
public abstract Object getAttribute(String name)
IllegalArgumentException.- Parameters:
-
name- Название атрибута. - Returns:
- value Значение атрибута.
- Throws:
-
IllegalArgumentException- Когда реализация не распознаёт атрибут.
setErrorListener
public abstract void setErrorListener(ErrorListener listener)
ErrorListener равен null, будет выброшено исключение IllegalArgumentException.- Parameters:
-
listener- Новый обработчик ошибок. - Throws:
-
IllegalArgumentException- Когдаlistenerравенnull
getErrorListener
public abstract ErrorListener getErrorListener()
- Returns:
- Текущий обработчик ошибок, который никогда не должен быть null.
© 1993, 2023, 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/21/docs/api/java.xml/javax/xml/transform/TransformerFactory.html