Класс TransformService
- Все реализуемые интерфейсы:
AlgorithmMethod, Transform, XMLStructure
public abstract class TransformService extends Object implements Transform
Каждый экземпляр TransformService поддерживает определённый алгоритм преобразования или канонизации и тип механизма XML. Чтобы создать TransformService, вызовите один из статических методов getInstance, передав URI алгоритма и требуемый тип механизма XML, например:
TransformService ts = TransformService.getInstance(Transform.XPATH2, "DOM");
Реализации TransformService регистрируются и загружаются с использованием механизма Provider. Каждая реализация поставщика услуг TransformService должна включать атрибут службы MechanismType, указывающий поддерживаемый тип механизма XML. Если атрибут не указан, предполагается значение "DOM". Например, поставщик услуг, поддерживающий преобразование XPath Filter 2 и механизм DOM, указывается в подклассе Provider следующим образом:
put("TransformService." + Transform.XPATH2,
"org.example.XPath2TransformService");
put("TransformService." + Transform.XPATH2 + " MechanismType", "DOM");
TransformService Реализации, поддерживающие тип механизма DOM, должны соблюдать требования совместимости DOM, определённые в разделе Требования к механизму DOM. Список стандартных URI алгоритмов и типов механизмов см. в разделе TransformService спецификации Стандартные имена алгоритмов безопасности Java. После создания TransformService его можно использовать для обработки объектов Transform или CanonicalizationMethod. Если Transform или CanonicalizationMethod существует в форме XML (например, при проверке существующего XMLSignature), для инициализации преобразования и предоставления контекста документа необходимо сначала вызвать метод init(XMLStructure, XMLCryptoContext) (даже если параметры отсутствуют). Если же Transform или CanonicalizationMethod создаётся с нуля, для инициализации преобразования параметрами вызывается метод init(TransformParameterSpec), а для маршалинга параметров в XML и предоставления преобразованию контекста документа вызывается метод marshalParams. Наконец, для выполнения преобразования вызывается метод transform.
Параллельный доступ
Гарантируется, что статические методы этого класса являются потокобезопасными. Несколько потоков могут одновременно вызывать статические методы, определённые в этом классе, без каких-либо нежелательных последствий.
Однако это не относится к нестатическим методам, определённым в этом классе. Если в документации конкретного поставщика не указано иное, потоки, которым необходимо одновременно обращаться к одному экземпляру TransformService, должны самостоятельно синхронизировать доступ и обеспечивать необходимую блокировку. Нескольким потокам, каждый из которых работает с отдельным экземпляром TransformService, синхронизация не требуется.
- Начиная с версии:
- 1.6
- Внешние спецификации
Краткое описание полей
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор по умолчанию, предназначенный для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final String |
getAlgorithm() |
Возвращает URI алгоритма, поддерживаемого этим TransformService. |
static TransformService |
getInstance |
Возвращает TransformService, поддерживающий указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM). |
static TransformService |
getInstance |
Возвращает TransformService, поддерживающий указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM), предоставляемые указанным поставщиком. |
static TransformService |
getInstance |
Возвращает TransformService, поддерживающий указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM), предоставляемые указанным поставщиком. |
final String |
getMechanismType() |
Возвращает тип механизма, поддерживаемый этим TransformService. |
final Provider |
getProvider() |
Возвращает поставщика этого TransformService. |
abstract void |
init |
Инициализирует этот TransformService указанными параметрами. |
abstract void |
init |
Инициализирует этот TransformService указанными параметрами и контекстом документа. |
abstract void |
marshalParams |
Выполняет маршалинг параметров, специфичных для алгоритма. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе Transform
getParameterSpec, transform, transform
Методы, объявленные в интерфейсе XMLStructure
isFeatureSupported
Подробное описание конструкторов
TransformService
protected TransformService()
Подробное описание методов
getInstance
public static TransformService getInstance(String algorithm, String mechanismType) throws NoSuchAlgorithmException
TransformService, поддерживающий указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM). Этот метод использует стандартный механизм поиска поставщиков JCA для обнаружения и создания экземпляра реализации TransformService требуемого алгоритма и атрибута службы MechanismType. Метод перебирает список зарегистрированных поставщиков безопасности Provider, начиная с наиболее предпочтительного Provider. Возвращается новый объект TransformService от первого Provider, поддерживающего указанные алгоритм и тип механизма.
Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Примечание по реализации:
- Реализация JDK Reference дополнительно использует свойство
jdk.security.provider.preferredSecurity, чтобы определить предпочтительный порядок поставщиков для указанного алгоритма. Он может отличаться от порядка поставщиков, возвращаемых методомSecurity.getProviders(). - Параметры:
-
algorithm— URI алгоритма. Список стандартных алгоритмов преобразования см. в разделеTransformServiceспецификации стандартных имён алгоритмов безопасности Java. -
mechanismType— тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделеTransformServiceспецификации стандартных имён алгоритмов безопасности Java. - Возвращает:
- новый
TransformService - Исключения:
-
NullPointerException— еслиalgorithmилиmechanismTypeимеет значениеnull -
NoSuchAlgorithmException— если ни одинProviderне поддерживает реализациюTransformServiceдля указанного алгоритма и типа механизма - Внешние спецификации
- См. также:
getInstance
public static TransformService getInstance(String algorithm, String mechanismType, Provider provider) throws NoSuchAlgorithmException
TransformService, поддерживающий указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM), предоставленные указанным поставщиком. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке поставщиков.- Параметры:
-
algorithm— URI алгоритма. Список стандартных алгоритмов преобразования см. в разделеTransformServiceспецификации стандартных имён алгоритмов безопасности Java. -
mechanismType— тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделеTransformServiceспецификации стандартных имён алгоритмов безопасности Java. -
provider— объектProvider - Возвращает:
- новый
TransformService - Исключения:
-
NullPointerException— еслиprovider,algorithmилиmechanismTypeимеет значениеnull -
NoSuchAlgorithmException— если реализацияTransformServiceдля указанного алгоритма и типа механизма недоступна у указанного объектаProvider - Внешние спецификации
- См. также:
getInstance
public static TransformService getInstance(String algorithm, String mechanismType, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
TransformService, поддерживающий указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM), предоставленные указанным поставщиком. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности. Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().
- Параметры:
-
algorithm— URI алгоритма. Список стандартных алгоритмов преобразования см. в разделеTransformServiceспецификации стандартных имён алгоритмов безопасности Java. -
mechanismType— тип механизма обработки XML и представления. Список стандартных типов механизмов см. в разделеTransformServiceспецификации стандартных имён алгоритмов безопасности Java. -
provider— строковое имя поставщика - Возвращает:
- новый
TransformService - Исключения:
-
NoSuchProviderException— если указанный поставщик не зарегистрирован в списке поставщиков безопасности -
NullPointerException— еслиprovider,mechanismTypeилиalgorithmимеет значениеnull -
NoSuchAlgorithmException— если реализацияTransformServiceдля указанного алгоритма и типа механизма недоступна у указанного поставщика - Внешние спецификации
- См. также:
getMechanismType
public final String getMechanismType()
TransformService.- Возвращает:
- тип механизма
getAlgorithm
public final String getAlgorithm()
TransformService.- Определено в:
-
getAlgorithmв интерфейсеAlgorithmMethod - Возвращает:
- URI алгоритма
getProvider
public final Provider getProvider()
TransformService.- Возвращает:
- поставщик
init
public abstract void init(TransformParameterSpec params) throws InvalidAlgorithmParameterException
TransformService указанными параметрами. Если параметры представлены в формате XML, для инициализации TransformService следует использовать метод init(XMLStructure, XMLCryptoContext).
- Параметры:
-
params— параметры алгоритма (может иметь значениеnull, если они не требуются или являются необязательными) - Исключения:
-
InvalidAlgorithmParameterException— если указанные параметры недопустимы для этого алгоритма
marshalParams
public abstract void marshalParams(XMLStructure parent, XMLCryptoContext context) throws MarshalException
- Параметры:
-
parent— структура, зависящая от механизма и содержащая родительский узел, к которому следует добавить преобразованные параметры -
context—XMLCryptoContext, содержащий дополнительный контекст (может иметь значениеnull, если неприменимо) - Исключения:
-
ClassCastException— если типparentилиcontextнесовместим с даннымTransformService -
NullPointerException— еслиparentимеет значениеnull -
MarshalException— если параметры невозможно преобразовать в формат XML
init
public abstract void init(XMLStructure parent, XMLCryptoContext context) throws InvalidAlgorithmParameterException
TransformService указанными параметрами и контекстом документа.- Параметры:
-
parent— структура, зависящая от механизма и содержащая родительскую структуру -
context—XMLCryptoContext, содержащий дополнительный контекст (может иметь значениеnull, если неприменимо) - Исключения:
-
ClassCastException— если типparentилиcontextнесовместим с даннымTransformService -
NullPointerException— еслиparentимеет значениеnull -
InvalidAlgorithmParameterException— если указанные параметры недопустимы для этого алгоритма
© 1993, 2025, 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/25/docs/api/java.xml.crypto/javax/xml/crypto/dsig/TransformService.html