Класс TransformerFactory
- java.lang.Object
-
- javax.xml.transform.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 |
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() | Создаёт новый экземпляр встроенной реализации |
static TransformerFactory | newInstance() | Получить новый экземпляр |
static TransformerFactory | newInstance(String factoryClassName,
ClassLoader classLoader) | Получить новый экземпляр |
abstract Templates | newTemplates(Source source) | Обработать источник в объект Templates, который представляет собой скомпилированное представление источника. |
abstract Transformer | newTransformer() | Создать новый |
abstract Transformer | newTransformer(Source source) | Обработать |
abstract void | setAttribute(String name,
Object value) | Позволяет пользователю установить определённые атрибуты в базовой реализации. |
abstract void | setErrorListener(ErrorListener listener) | Установить обработчик событий об ошибках для TransformerFactory, который используется для обработки инструкций преобразования, а не для самого преобразования. |
abstract void | setFeature(String name,
boolean value) | Установить функцию для данного |
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. Примеры XMLSourceвключают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. - Возвращает:
- Объект
SourceObject, подходящий для передачи в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