Класс 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() |
Создаёт новый экземпляр TransformerFactory реализации по умолчанию. |
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()
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, соответствующий XSLT версии 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 созданных этой фабрикой.
Имена свойств — это полные URIs. Реализации могут определять свои собственные свойства. 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 ограничен протоколами, указанными в свойстве. Если доступ запрещён во время преобразования из-за ограничения этого свойства, исключение
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, 2021, 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/17/docs/api/java.xml/javax/xml/transform/TransformerFactory.html