Класс TransformerFactory

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

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

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

С момента:
1.5

Конструкторы

Модификатор Конструктор Описание
protected TransformerFactory()

Конструктор по умолчанию намеренно защищён.

Методы

Модификатор и тип Метод Описание
abstract Source getAssociatedStylesheet​(Source source, String media, String title, String charset)

Получить спецификацию(и) таблицы стилей, связанную(ые) с XML Source документом через инструкцию обработки XML 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)

Обработать источник в объект 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.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

TransformerFactory

protected TransformerFactory()

Конструктор по умолчанию является защищённым намеренно.

Методы

newDefaultInstance

public static TransformerFactory newDefaultInstance()

Создаёт новый экземпляр TransformerFactory встроенной реализации по умолчанию системы.

Возвращает:
Новый экземпляр TransformerFactory встроенной реализации по умолчанию системы.
С:
9

newInstance

public static TransformerFactory newInstance()
                                      throws TransformerFactoryConfigurationError

Получить новый экземпляр TransformerFactory. Этот статический метод создаёт новый экземпляр фабрики.

Этот метод использует следующую упорядоченную процедуру поиска для определения класса реализации TransformerFactory для загрузки:

  • Используйте системное свойство javax.xml.transform.TransformerFactory.
  • Используйте файл конфигурации "jaxp.properties". Файл имеет стандартный Properties формат и обычно находится в каталоге conf установки Java. Он содержит полное имя класса реализации с ключом, являющимся системным свойством, определённым выше.

    Файл jaxp.properties читается только один раз реализацией JAXP, а его значения кешируются для последующего использования. Если файл не существует при первой попытке чтения из него, дальнейшие попытки проверки его существования не производятся. Изменить значение любого свойства в файле jaxp.properties после его первого прочтения невозможно.

  • Используйте механизм загрузки поставщиков услуг, определяемый классом ServiceLoader, чтобы попытаться найти и загрузить реализацию службы, используя механизм загрузки по умолчанию: механизм загрузки поставщиков услуг будет использовать класс загрузчик контекста текущей нити для попытки загрузки службы. Если класс загрузчик контекста равен null, будет использован системный класс загрузчик.

  • В противном случае возвращается реализация по умолчанию системы .

После получения приложения ссылки на 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
См. также:
newInstance()

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. Примеры XML Source включают DOMSource, SAXSource и StreamSource.
Возвращает:
Объект Transformer , который может использоваться для выполнения преобразования в одной Thread, никогда не null.
Исключения:
TransformerConfigurationException - Бросается, если при разборе Source возникли ошибки или невозможно создать экземпляр Transformer.
См. также:
XSL Transformations (XSLT) Version 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 - Ошибка Exception выбрасывается, если при разборе source возникает ошибка.
См. также:
Associating Style Sheets with XML documents Version 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. Реализации могут определять свои собственные свойства. TransformerConfigurationException выбрасывается, если эта фабрика или 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 - если эта фабрика или Transformer или Template , созданные ею, не могут поддержать это свойство.
NullPointerException - Если параметр name равен null.

getFeature

public abstract boolean getFeature(String name)

Получение значения параметра.

Имена параметров полностью квалифицированные URIs. Реализации могут определять свои собственные параметры. false возвращается, если этот TransformerFactory или Transformer или Templates, которые он создает, не поддерживают параметр. Возможна ситуация, когда 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. Если доступ запрещён во время преобразования из-за ограничения этого свойства, 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).

Параметры:
name - Название параметра.
value - Значение параметра.
Исключения:
IllegalArgumentException - При отсутствии параметра в реализации.

getAttribute

public abstract Object getAttribute(String name)

Позволяет пользователю получить определенный параметр в базовой реализации. Если базовая реализация не распознаёт параметр, вызывается исключение IllegalArgumentException.

Параметры:
name - Название параметра.
Возвращаемое значение:
value Значение параметра.
Исключения:
IllegalArgumentException - При отсутствии параметра в реализации.

setErrorListener

public abstract void setErrorListener(ErrorListener listener)

Устанавливает обработчик событий ошибок для TransformerFactory, который используется для обработки инструкций преобразования, а не самого преобразования. Исключение IllegalArgumentException выбрасывается, если слушатель ошибок ErrorListener равен null.

Параметры:
listener - Новый обработчик ошибок.
Исключения:
IllegalArgumentException - Когда listener равно null

getErrorListener

public abstract ErrorListener getErrorListener()

Получение обработчика событий ошибок для TransformerFactory.

Возвращаемое значение:
Текущий обработчик ошибок, который никогда не должен быть null.

© 1993, 2020, 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/11/docs/api/java.xml/javax/xml/transform/TransformerFactory.html

Spec-Zone .ru
спецификации, руководства, описания, API