Класс Transformer
- java.lang.Object
-
- javax.xml.transform.Transformer
public abstract class Transformer extends Object
Экземпляр этого абстрактного класса может преобразовать дерево источника в дерево результата.
Экземпляр этого класса можно получить с помощью метода TransformerFactory.newTransformer. Этот экземпляр затем может быть использован для обработки XML из различных источников и записи выходных данных преобразования в различные стоки.
Объект этого класса не может быть использован в нескольких потоках, выполняющихся одновременно. Разные трансформаторы могут использоваться одновременно разными потоками.
Объект Transformer может быть использован несколько раз. Параметры и свойства вывода сохраняются между преобразованиями.
Конструкторы
| Модификатор | Конструктор и описание |
|---|---|
protected |
Transformer() Конструктор по умолчанию защищен намеренно. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
abstract void |
clearParameters() Очистить все параметры, заданные с помощью setParameter. |
abstract ErrorListener |
getErrorListener() Получить обработчик событий ошибок, действующий для преобразования. |
abstract Properties |
getOutputProperties() Получить копию свойств вывода для преобразования. |
abstract String |
getOutputProperty(String name) Получить свойство вывода, действующее для трансформатора. |
abstract Object |
getParameter(String name) Получить параметр, явно заданный с помощью setParameter. |
abstract URIResolver |
getURIResolver() Получить объект, который будет использоваться для разрешения URI, используемых в document(). |
void |
reset() Сбросить этот |
abstract void |
setErrorListener(ErrorListener listener) Установить обработчик событий ошибок, действующий для преобразования. |
abstract void |
setOutputProperties(Properties oformat) Установить свойства вывода для преобразования. |
abstract void |
setOutputProperty(String name,
String value) Установить свойство вывода, которое будет действовать для преобразования. |
abstract void |
setParameter(String name,
Object value) Добавить параметр для преобразования. |
abstract void |
setURIResolver(URIResolver resolver) Установить объект, который будет использоваться для разрешения URI, используемых в document(). |
abstract void |
transform(Source xmlSource,
Result outputTarget) Преобразовать XML |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
Transformer
protected Transformer()
Конструктор по умолчанию намеренно защищён.
Методы
reset
public void reset()
Сбросить это Transformer до его исходной конфигурации.
Transformer сбрасывается до того же состояния, что и при создании с помощью TransformerFactory.newTransformer(), TransformerFactory.newTransformer(Source source) или Templates.newTransformer(). reset() разработан для повторного использования существующих Transformer для экономии ресурсов, связанных с созданием новых Transformer.
Сброшенное Transformer не гарантирует, что у него будут те же URIResolver или ErrorListener Object , например, Object.equals(Object obj). Гарантируется, что у него будут функционально эквивалентные URIResolver и ErrorListener.
- Возбуждает:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод. - С:
- 1.5
transform
public abstract void transform(Source xmlSource,
Result outputTarget)
throws TransformerException Преобразовать XML Source в Result. Конкретное поведение преобразования определяется настройками TransformerFactory , действующими при создании Transformer, и любыми изменениями экземпляра Transformer.
Пустой Source представлен как пустой документ, созданный с помощью DocumentBuilder.newDocument(). Результат преобразования пустого Source зависит от поведения преобразования; это не всегда пустой Result.
- Параметры:
-
xmlSource- Входной XML для преобразования. -
outputTarget-ResultпреобразованияxmlSource. - Возбуждает:
-
TransformerException- Если в ходе преобразования произошла невосстановимая ошибка.
setParameter
public abstract void setParameter(String name,
Object value) Добавить параметр для преобразования.
Передайте квалифицированное имя в виде строки из двух частей, URI пространства имён в фигурных скобках ({}), за которым следует локальное имя. Если у имени нет URL, строка содержит только локальное имя. Приложение может безопасно проверить наличие URI, проверив, является ли первый символ имени символом '{'.
Например, если URI и локальное имя были получены из элемента, определённого с помощью <xyz:foo xmlns:xyz="http://xyz.foo.com/yada/baz.html"/>, то квалифицированным именем будет "{http://xyz.foo.com/yada/baz.html}foo". Обратите внимание, что префикс не используется.
- Параметры:
-
name- Название параметра, которое может начинаться с URI пространства имён в фигурных скобках ({}). -
value- Объект значения. Это может быть любой допустимый объект Java. Обработчик должен предоставить правильное преобразование объекта или просто передать объект для использования в расширении. - Возбуждает:
-
NullPointerException- Если значение равно null.
getParameter
public abstract Object getParameter(String name)
Получить параметр, явно заданный с помощью setParameter.
Этот метод не возвращает значение параметра по умолчанию, которое нельзя определить до оценки контекста узла во время процесса преобразования.
- Параметры:
-
name-Objectдля получения - Возвращает:
- Параметр, установленный с помощью setParameter.
clearParameters
public abstract void clearParameters()
Очистить все параметры, установленные с помощью setParameter.
setURIResolver
public abstract void setURIResolver(URIResolver resolver)
Установить объект, который будет использоваться для разрешения URI, используемых в document().
Если аргумент resolver равен null, значение URIResolver будет очищено, и у преобразователя больше не будет разрешителя.
- Параметры:
-
resolver- Объект, реализующий интерфейс URIResolver, или null.
getURIResolver
public abstract URIResolver getURIResolver()
Получить объект, который будет использоваться для разрешения URI, используемых в document().
- Возвращает:
- Объект, реализующий интерфейс URIResolver, или null.
setOutputProperties
public abstract void setOutputProperties(Properties oformat)
Установить свойства вывода для преобразования. Эти свойства переопределят свойства, заданные в шаблонах с помощью xsl:output.
Если аргумент этой функции равен null, все ранее установленные свойства удаляются, и значение вернётся к значению, определённому в объекте шаблонов.
Передайте квалифицированное имя свойства в виде строки из двух частей, URI пространства имён в фигурных скобках ({}), за которым следует локальное имя. Если у имени нет URL, строка содержит только локальное имя. Приложение может безопасно проверить наличие URI, проверив, является ли первый символ имени символом '{'.
Например, если URI и локальное имя были получены из элемента, определённого с помощью <xyz:foo xmlns:xyz="http://xyz.foo.com/yada/baz.html"/>, то квалифицированным именем будет "{http://xyz.foo.com/yada/baz.html}foo". Обратите внимание, что префикс не используется.
Если какие-либо ключи аргументов не распознаются и не являются квалифицированными по пространству имён, будет выброшено исключение IllegalArgumentException.
- Параметры:
-
oformat- Набор свойств вывода, которые будут использоваться для переопределения любых аналогичных свойств, действующих при преобразовании. - Возбуждает:
-
IllegalArgumentException- При распознавании ключей и при отсутствии квалификации по пространству имён. - См. также:
-
OutputKeys,Properties
getOutputProperties
public abstract Properties getOutputProperties()
Получить копию свойств вывода для преобразования.
Возвращаемые свойства должны содержать свойства, заданные пользователем и шаблоном, а эти свойства «по умолчанию» заданы свойствами по умолчанию, указанными в разделе 16 спецификации XSLT (XSL Transformations) W3C. Свойства, которые были явно заданы пользователем или шаблоном, должны быть в списке базовых свойств, а свойства по умолчанию XSLT, которые не были явно заданы, должны быть в списке свойств по умолчанию. Таким образом, getOutputProperties().getProperty(String key) получит любое свойство, которое было установлено с помощью setOutputProperty(java.lang.String, java.lang.String), setOutputProperties(java.util.Properties), в шаблоне или свойства по умолчанию, в то время как getOutputProperties().get(String key) вернёт только свойства, которые были явно установлены с помощью setOutputProperty(java.lang.String, java.lang.String), setOutputProperties(java.util.Properties) или в шаблоне.
Обратите внимание, что изменение объекта Properties не повлияет на свойства, которые содержит преобразователь.
Если какие-либо ключи аргументов не распознаются и не являются квалифицированными по пространству имён, свойство будет проигнорировано и не возвращено. Другими словами, поведение не ортогонально setOutputProperties.
- Возвращает:
- Копию набора свойств вывода, действующих при следующем преобразовании.
- См. также:
-
OutputKeys,Properties, XSL Transformations (XSLT) Version 1.0
setOutputProperty
public abstract void setOutputProperty(String name,
String value)
throws IllegalArgumentException Установить свойство вывода, которое будет действовать при преобразовании.
Передайте квалифицированное имя свойства в виде строки из двух частей, URI пространства имён в фигурных скобках ({}), за которым следует локальное имя. Если у имени нет URL, строка содержит только локальное имя. Приложение может безопасно проверить наличие URI, проверив, является ли первый символ имени символом '{'.
Например, если URI и локальное имя были получены из элемента, определённого с помощью <xyz:foo xmlns:xyz="http://xyz.foo.com/yada/baz.html"/>, то квалифицированным именем будет "{http://xyz.foo.com/yada/baz.html}foo". Обратите внимание, что префикс не используется.
Объект Properties, переданный в setOutputProperties(java.util.Properties), не будет затронут вызовом этого метода.
- Параметры:
-
name- Непустая строка, которая указывает имя свойства вывода, которое может быть квалифицировано по пространству имён. -
value- Строковое значение свойства вывода. - Возбуждает:
-
IllegalArgumentException- Если свойство не поддерживается и не квалифицировано по пространству имён. - См. также:
OutputKeys
getOutputProperty
public abstract String getOutputProperty(String name)
throws IllegalArgumentException Получить свойство вывода, действующее для преобразователя.
Если свойство было установлено с помощью setOutputProperty(java.lang.String, java.lang.String), будет возвращено это значение. В противном случае, если свойство явно указано в шаблоне, будет возвращено это значение. Если значение свойства установлено по умолчанию, то есть если значение не установлено явно ни с помощью setOutputProperty(java.lang.String, java.lang.String), ни в шаблоне, результат может варьироваться в зависимости от реализации и входного шаблона.
- Параметры:
-
name- Непустая строка, которая указывает имя свойства вывода, которое может быть квалифицировано по пространству имён. - Возвращает:
- Строковое значение свойства вывода или null, если свойство не найдено.
- Возбуждает:
-
IllegalArgumentException- Если свойство не поддерживается. - См. также:
OutputKeys
setErrorListener
public abstract void setErrorListener(ErrorListener listener)
throws IllegalArgumentException Установить обработчик событий ошибок, действующий при преобразовании.
- Параметры:
-
listener- Новый обработчик ошибок. - Возбуждает:
-
IllegalArgumentException- Если listener равен null.
getErrorListener
public abstract ErrorListener getErrorListener()
Получить обработчик событий ошибок, действующий для преобразования. Реализации должны предоставить обработчик ошибок по умолчанию.
- Возвращает:
- Текущий обработчик ошибок, который никогда не должен быть 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.