Transform (Java SE 22 & JDK 22)
Description: declaration: module: java.xml.crypto, package: javax.xml.crypto.dsig, interface: Transform
Keywords: javax.xml.crypto.dsig.Transform interface

Module java.xml.crypto
Package javax.xml.crypto.dsig

# Interface Transform

All Superinterfaces:
  `AlgorithmMethod`, `XMLStructure`

All Known Subinterfaces:
  `CanonicalizationMethod`

All Known Implementing Classes:
  `TransformService`

public interface Transform extends XMLStructure, AlgorithmMethod
A representation of the XML `Transform` element as defined in the W3C Recommendation for XML-Signature Syntax and Processing. The XML Schema Definition is defined as:

     <element name="Transform" type="ds:TransformType"/>
       <complexType name="TransformType" mixed="true">
         <choice minOccurs="0" maxOccurs="unbounded">
           <any namespace="##other" processContents="lax"/>
           <!-- (1,1) elements from (0,unbounded) namespaces -->
           <element name="XPath" type="string"/>
         </choice>
         <attribute name="Algorithm" type="anyURI" use="required"/>
       </complexType>

A `Transform` instance may be created by invoking the `newTransform` method of the `XMLSignatureFactory` class.

Since:
  1.6
See Also:
  - `XMLSignatureFactory.newTransform(String, TransformParameterSpec)`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `BASE64`
  The Base64 transform algorithm URI.
  `static final String`
  `ENVELOPED`
  The Enveloped Signature transform algorithm URI.
  `static final String`
  `XPATH`
  The XPath transform algorithm URI.
  `static final String`
  `XPATH2`
  The XPath Filter 2 transform algorithm URI.
  `static final String`
  `XSLT`
  The XSLT transform algorithm URI.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `AlgorithmParameterSpec`
  `getParameterSpec()`
  Returns the algorithm-specific input parameters associated with this `Transform`.
  `Data`
  `transform(Data data, XMLCryptoContext context)`
  Transforms the specified data using the underlying transform algorithm.
  `Data`
  `transform(Data data, XMLCryptoContext context, OutputStream os)`
  Transforms the specified data using the underlying transform algorithm.

  ### Methods declared in interface javax.xml.crypto.AlgorithmMethod

  `getAlgorithm`

  ### Methods declared in interface javax.xml.crypto.XMLStructure

  `isFeatureSupported`

- ## Field Details

  - ### BASE64

    static final String BASE64
    The Base64 transform algorithm URI.
    See Also:
      - Constant Field Values

  - ### ENVELOPED

    static final String ENVELOPED
    The Enveloped Signature transform algorithm URI.
    See Also:
      - Constant Field Values

  - ### XPATH

    static final String XPATH
    The XPath transform algorithm URI.
    See Also:
      - Constant Field Values

  - ### XPATH2

    static final String XPATH2
    The XPath Filter 2 transform algorithm URI.
    See Also:
      - Constant Field Values

  - ### XSLT

    static final String XSLT
    The XSLT transform algorithm URI.
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getParameterSpec

    AlgorithmParameterSpec getParameterSpec()
    Returns the algorithm-specific input parameters associated with this `Transform`.

    The returned parameters can be typecast to a `TransformParameterSpec` object.

    Specified by:
      `getParameterSpec` in interface `AlgorithmMethod`
    Returns:
      the algorithm-specific input parameters (may be `null` if not specified)

  - ### transform

    Data transform(Data data, XMLCryptoContext context) throws TransformException
    Transforms the specified data using the underlying transform algorithm.
    Parameters:
      `data` - the data to be transformed
      `context` - the `XMLCryptoContext` containing additional context (may be `null` if not applicable)
    Returns:
      the transformed data
    Throws:
      `NullPointerException` - if `data` is `null`
      `TransformException` - if an error occurs while executing the transform

  - ### transform

    Data transform(Data data, XMLCryptoContext context, OutputStream os) throws TransformException
    Transforms the specified data using the underlying transform algorithm. If the output of this transform is an `OctetStreamData`, then this method returns `null` and the bytes are written to the specified `OutputStream`. Otherwise, the `OutputStream` is ignored and the method behaves as if `transform(Data, XMLCryptoContext)` were invoked.
    Parameters:
      `data` - the data to be transformed
      `context` - the `XMLCryptoContext` containing additional context (may be `null` if not applicable)
      `os` - the `OutputStream` that should be used to write the transformed data to
    Returns:
      the transformed data (or `null` if the data was written to the `OutputStream` parameter)
    Throws:
      `NullPointerException` - if `data` or `os` is `null`
      `TransformException` - if an error occurs while executing the transform