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

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

# Interface XMLObject

All Superinterfaces:
  `XMLStructure`

public interface XMLObject extends XMLStructure
A representation of the XML `Object` element as defined in the W3C Recommendation for XML-Signature Syntax and Processing. An `XMLObject` may contain any data and may include optional MIME type, ID, and encoding attributes. The XML Schema Definition is defined as:

     <element name="Object" type="ds:ObjectType"/>
     <complexType name="ObjectType" mixed="true">
       <sequence minOccurs="0" maxOccurs="unbounded">
         <any namespace="##any" processContents="lax"/>
       </sequence>
       <attribute name="Id" type="ID" use="optional"/>
       <attribute name="MimeType" type="string" use="optional"/>
       <attribute name="Encoding" type="anyURI" use="optional"/>
     </complexType>

A `XMLObject` instance may be created by invoking the `newXMLObject` method of the `XMLSignatureFactory` class; for example:

       XMLSignatureFactory fac = XMLSignatureFactory.getInstance("DOM");
       Manifest manifest = fac.newManifest(references);
       List<XMLStructure> content = Collections.singletonList(manifest);
       XMLObject object = factory.newXMLObject(content, "object-1", null, null);

Note that this class is named `XMLObject` rather than `Object` to avoid naming clashes with the existing `java.lang.Object` class.

Since:
  1.6
See Also:
  - `XMLSignatureFactory.newXMLObject(List, String, String, String)`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `TYPE`
  URI that identifies the `Object` element (this can be specified as the value of the `type` parameter of the `Reference` class to identify the referent's type).

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<XMLStructure>`
  `getContent()`
  Returns an `unmodifiable list` of `XMLStructure`s contained in this `XMLObject`, which represent elements from any namespace.
  `String`
  `getEncoding()`
  Returns the encoding URI of this `XMLObject`.
  `String`
  `getId()`
  Returns the Id of this `XMLObject`.
  `String`
  `getMimeType()`
  Returns the mime type of this `XMLObject`.

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

  `isFeatureSupported`

- ## Field Details

  - ### TYPE

    static final String TYPE
    URI that identifies the `Object` element (this can be specified as the value of the `type` parameter of the `Reference` class to identify the referent's type).
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getContent

    List<XMLStructure> getContent()
    Returns an `unmodifiable list` of `XMLStructure`s contained in this `XMLObject`, which represent elements from any namespace.

    If there is a public subclass representing the type of `XMLStructure`, it is returned as an instance of that class (ex: a `SignatureProperties` element would be returned as an instance of `SignatureProperties`).

    Returns:
      an unmodifiable list of `XMLStructure`s (may be empty but never `null`)

  - ### getId

    String getId()
    Returns the Id of this `XMLObject`.
    Returns:
      the Id (or `null` if not specified)

  - ### getMimeType

    String getMimeType()
    Returns the mime type of this `XMLObject`. The mime type is an optional attribute which describes the data within this `XMLObject` (independent of its encoding).
    Returns:
      the mime type (or `null` if not specified)

  - ### getEncoding

    String getEncoding()
    Returns the encoding URI of this `XMLObject`. The encoding URI identifies the method by which the object is encoded.
    Returns:
      the encoding URI (or `null` if not specified)