SOAPElement (Java Platform SE 8 )
Keywords: javax.xml.soap.SOAPElement interface
Date: 2026-04-24

javax.xml.soap

## Interface SOAPElement

- All Superinterfaces:
    Element, Node
  All Known Subinterfaces:
    Detail, DetailEntry, SOAPBody, SOAPBodyElement, SOAPEnvelope, SOAPFault, SOAPFaultElement, SOAPHeader, SOAPHeaderElement

      public interface SOAPElement
      extends Node, Element

  An object representing an element of a SOAP message that is allowed but not specifically prescribed by a SOAP specification. This interface serves as the base interface for those objects that are specifically prescribed by a SOAP specification.

  Methods in this interface that are required to return SAAJ specific objects may "silently" replace nodes in the tree as required to successfully return objects of the correct type. See `getChildElements()` and javax.xml.soap for details.

- - ### Field Summary

    - ### Fields inherited from interface org.w3c.dom.Node

      `ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `SOAPElement` | `addAttribute(Name name, String value)` Adds an attribute with the specified name and value to this `SOAPElement` object.
    `SOAPElement` | `addAttribute(QName qname, String value)` Adds an attribute with the specified name and value to this `SOAPElement` object.
    `SOAPElement` | `addChildElement(Name name)` Creates a new `SOAPElement` object initialized with the given `Name` object and adds the new element to this `SOAPElement` object.
    `SOAPElement` | `addChildElement(QName qname)` Creates a new `SOAPElement` object initialized with the given `QName` object and adds the new element to this `SOAPElement` object.
    `SOAPElement` | `addChildElement(SOAPElement element)` Add a `SOAPElement` as a child of this `SOAPElement` instance.
    `SOAPElement` | `addChildElement(String localName)` Creates a new `SOAPElement` object initialized with the specified local name and adds the new element to this `SOAPElement` object.
    `SOAPElement` | `addChildElement(String localName, String prefix)` Creates a new `SOAPElement` object initialized with the specified local name and prefix and adds the new element to this `SOAPElement` object.
    `SOAPElement` | `addChildElement(String localName, String prefix, String uri)` Creates a new `SOAPElement` object initialized with the specified local name, prefix, and URI and adds the new element to this `SOAPElement` object.
    `SOAPElement` | `addNamespaceDeclaration(String prefix, String uri)` Adds a namespace declaration with the specified prefix and URI to this `SOAPElement` object.
    `SOAPElement` | `addTextNode(String text)` Creates a new `Text` object initialized with the given `String` and adds it to this `SOAPElement` object.
    `QName` | `createQName(String localName, String prefix)` Creates a `QName` whose namespace URI is the one associated with the parameter, `prefix`, in the context of this `SOAPElement`.
    `Iterator` | `getAllAttributes()` Returns an `Iterator` over all of the attribute `Name` objects in this `SOAPElement` object.
    `Iterator` | `getAllAttributesAsQNames()` Returns an `Iterator` over all of the attributes in this `SOAPElement` as `QName` objects.
    `String` | `getAttributeValue(Name name)` Returns the value of the attribute with the specified name.
    `String` | `getAttributeValue(QName qname)` Returns the value of the attribute with the specified qname.
    `Iterator` | `getChildElements()` Returns an `Iterator` over all the immediate child `Node`s of this element.
    `Iterator` | `getChildElements(Name name)` Returns an `Iterator` over all the immediate child `Node`s of this element with the specified name.
    `Iterator` | `getChildElements(QName qname)` Returns an `Iterator` over all the immediate child `Node`s of this element with the specified qname.
    `Name` | `getElementName()` Returns the name of this `SOAPElement` object.
    `QName` | `getElementQName()` Returns the qname of this `SOAPElement` object.
    `String` | `getEncodingStyle()` Returns the encoding style for this `SOAPElement` object.
    `Iterator` | `getNamespacePrefixes()` Returns an `Iterator` over the namespace prefix `String`s declared by this element.
    `String` | `getNamespaceURI(String prefix)` Returns the URI of the namespace that has the given prefix.
    `Iterator` | `getVisibleNamespacePrefixes()` Returns an `Iterator` over the namespace prefix `String`s visible to this element.
    `boolean` | `removeAttribute(Name name)` Removes the attribute with the specified name.
    `boolean` | `removeAttribute(QName qname)` Removes the attribute with the specified qname.
    `void` | `removeContents()` Detaches all children of this `SOAPElement`.
    `boolean` | `removeNamespaceDeclaration(String prefix)` Removes the namespace declaration corresponding to the given prefix.
    `SOAPElement` | `setElementQName(QName newName)` Changes the name of this `Element` to `newName` if possible.
    `void` | `setEncodingStyle(String encodingStyle)` Sets the encoding style for this `SOAPElement` object to one specified.

    - ### Methods inherited from interface javax.xml.soap.Node

      `detachNode, getParentElement, getValue, recycleNode, setParentElement, setValue`

    - ### Methods inherited from interface org.w3c.dom.Element

      `getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getElementsByTagName, getElementsByTagNameNS, getSchemaTypeInfo, getTagName, hasAttribute, hasAttributeNS, removeAttribute, removeAttributeNode, removeAttributeNS, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setIdAttribute, setIdAttributeNode, setIdAttributeNS`

    - ### Methods inherited from interface org.w3c.dom.Node

      `appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData`

- - ### Method Detail

    - #### addChildElement

          SOAPElement addChildElement(Name name)
                               throws SOAPException

      Creates a new `SOAPElement` object initialized with the given `Name` object and adds the new element to this `SOAPElement` object.

      This method may be deprecated in a future release of SAAJ in favor of addChildElement(javax.xml.namespace.QName)

      Parameters:
        `name` - a `Name` object with the XML name for the new element
      Returns:
        the new `SOAPElement` object that was created
      Throws:
        `SOAPException` - if there is an error in creating the `SOAPElement` object
      See Also:
        `addChildElement(javax.xml.namespace.QName)`

    - #### addChildElement

          SOAPElement addChildElement(QName qname)
                               throws SOAPException

      Creates a new `SOAPElement` object initialized with the given `QName` object and adds the new element to this `SOAPElement` object. The namespace, localname and prefix of the new `SOAPElement` are all taken from the `qname` argument.
      Parameters:
        `qname` - a `QName` object with the XML name for the new element
      Returns:
        the new `SOAPElement` object that was created
      Throws:
        `SOAPException` - if there is an error in creating the `SOAPElement` object
      Since:
        SAAJ 1.3
      See Also:
        `addChildElement(Name)`

    - #### addChildElement

          SOAPElement addChildElement(String localName)
                               throws SOAPException

      Creates a new `SOAPElement` object initialized with the specified local name and adds the new element to this `SOAPElement` object. The new `SOAPElement` inherits any in-scope default namespace.
      Parameters:
        `localName` - a `String` giving the local name for the element
      Returns:
        the new `SOAPElement` object that was created
      Throws:
        `SOAPException` - if there is an error in creating the `SOAPElement` object

    - #### addChildElement

          SOAPElement addChildElement(String localName,
                                      String prefix)
                               throws SOAPException

      Creates a new `SOAPElement` object initialized with the specified local name and prefix and adds the new element to this `SOAPElement` object.
      Parameters:
        `localName` - a `String` giving the local name for the new element
        `prefix` - a `String` giving the namespace prefix for the new element
      Returns:
        the new `SOAPElement` object that was created
      Throws:
        `SOAPException` - if the `prefix` is not valid in the context of this `SOAPElement` or if there is an error in creating the `SOAPElement` object

    - #### addChildElement

          SOAPElement addChildElement(String localName,
                                      String prefix,
                                      String uri)
                               throws SOAPException

      Creates a new `SOAPElement` object initialized with the specified local name, prefix, and URI and adds the new element to this `SOAPElement` object.
      Parameters:
        `localName` - a `String` giving the local name for the new element
        `prefix` - a `String` giving the namespace prefix for the new element
        `uri` - a `String` giving the URI of the namespace to which the new element belongs
      Returns:
        the new `SOAPElement` object that was created
      Throws:
        `SOAPException` - if there is an error in creating the `SOAPElement` object

    - #### addChildElement

          SOAPElement addChildElement(SOAPElement element)
                               throws SOAPException

      Add a `SOAPElement` as a child of this `SOAPElement` instance. The `SOAPElement` is expected to be created by a `SOAPFactory`. Callers should not rely on the element instance being added as is into the XML tree. Implementations could end up copying the content of the `SOAPElement` passed into an instance of a different `SOAPElement` implementation. For instance if `addChildElement()` is called on a `SOAPHeader`, `element` will be copied into an instance of a `SOAPHeaderElement`.

      The fragment rooted in `element` is either added as a whole or not at all, if there was an error.

      The fragment rooted in `element` cannot contain elements named "Envelope", "Header" or "Body" and in the SOAP namespace. Any namespace prefixes present in the fragment should be fully resolved using appropriate namespace declarations within the fragment itself.

      Parameters:
        `element` - the `SOAPElement` to be added as a new child
      Returns:
        an instance representing the new SOAP element that was actually added to the tree.
      Throws:
        `SOAPException` - if there was an error in adding this element as a child

    - #### removeContents

          void removeContents()

      Detaches all children of this `SOAPElement`.

      This method is useful for rolling back the construction of partially completed `SOAPHeaders` and `SOAPBodys` in preparation for sending a fault when an error condition is detected. It is also useful for recycling portions of a document within a SOAP message.

      Since:
        SAAJ 1.2

    - #### addTextNode

          SOAPElement addTextNode(String text)
                           throws SOAPException

      Creates a new `Text` object initialized with the given `String` and adds it to this `SOAPElement` object.
      Parameters:
        `text` - a `String` object with the textual content to be added
      Returns:
        the `SOAPElement` object into which the new `Text` object was inserted
      Throws:
        `SOAPException` - if there is an error in creating the new `Text` object or if it is not legal to attach it as a child to this `SOAPElement`

    - #### addAttribute

          SOAPElement addAttribute(Name name,
                                   String value)
                            throws SOAPException

      Adds an attribute with the specified name and value to this `SOAPElement` object.
      Parameters:
        `name` - a `Name` object with the name of the attribute
        `value` - a `String` giving the value of the attribute
      Returns:
        the `SOAPElement` object into which the attribute was inserted
      Throws:
        `SOAPException` - if there is an error in creating the Attribute, or it is invalid to set an attribute with `Name` `name` on this SOAPElement.
      See Also:
        `addAttribute(javax.xml.namespace.QName, String)`

    - #### addAttribute

          SOAPElement addAttribute(QName qname,
                                   String value)
                            throws SOAPException

      Adds an attribute with the specified name and value to this `SOAPElement` object.
      Parameters:
        `qname` - a `QName` object with the name of the attribute
        `value` - a `String` giving the value of the attribute
      Returns:
        the `SOAPElement` object into which the attribute was inserted
      Throws:
        `SOAPException` - if there is an error in creating the Attribute, or it is invalid to set an attribute with `QName` `qname` on this SOAPElement.
      Since:
        SAAJ 1.3
      See Also:
        `addAttribute(Name, String)`

    - #### addNamespaceDeclaration

          SOAPElement addNamespaceDeclaration(String prefix,
                                              String uri)
                                       throws SOAPException

      Adds a namespace declaration with the specified prefix and URI to this `SOAPElement` object.
      Parameters:
        `prefix` - a `String` giving the prefix of the namespace
        `uri` - a `String` giving the uri of the namespace
      Returns:
        the `SOAPElement` object into which this namespace declaration was inserted.
      Throws:
        `SOAPException` - if there is an error in creating the namespace

    - #### getAttributeValue

          String getAttributeValue(Name name)

      Returns the value of the attribute with the specified name.
      Parameters:
        `name` - a `Name` object with the name of the attribute
      Returns:
        a `String` giving the value of the specified attribute, Null if there is no such attribute
      See Also:
        `getAttributeValue(javax.xml.namespace.QName)`

    - #### getAttributeValue

          String getAttributeValue(QName qname)

      Returns the value of the attribute with the specified qname.
      Parameters:
        `qname` - a `QName` object with the qname of the attribute
      Returns:
        a `String` giving the value of the specified attribute, Null if there is no such attribute
      Since:
        SAAJ 1.3
      See Also:
        `getAttributeValue(Name)`

    - #### getAllAttributes

          Iterator getAllAttributes()

      Returns an `Iterator` over all of the attribute `Name` objects in this `SOAPElement` object. The iterator can be used to get the attribute names, which can then be passed to the method `getAttributeValue` to retrieve the value of each attribute.
      Returns:
        an iterator over the names of the attributes
      See Also:
        `getAllAttributesAsQNames()`

    - #### getAllAttributesAsQNames

          Iterator getAllAttributesAsQNames()

      Returns an `Iterator` over all of the attributes in this `SOAPElement` as `QName` objects. The iterator can be used to get the attribute QName, which can then be passed to the method `getAttributeValue` to retrieve the value of each attribute.
      Returns:
        an iterator over the QNames of the attributes
      Since:
        SAAJ 1.3
      See Also:
        `getAllAttributes()`

    - #### getNamespaceURI

          String getNamespaceURI(String prefix)

      Returns the URI of the namespace that has the given prefix.
      Parameters:
        `prefix` - a `String` giving the prefix of the namespace for which to search
      Returns:
        a `String` with the uri of the namespace that has the given prefix

    - #### getNamespacePrefixes

          Iterator getNamespacePrefixes()

      Returns an `Iterator` over the namespace prefix `String`s declared by this element. The prefixes returned by this iterator can be passed to the method `getNamespaceURI` to retrieve the URI of each namespace.
      Returns:
        an iterator over the namespace prefixes in this `SOAPElement` object

    - #### getVisibleNamespacePrefixes

          Iterator getVisibleNamespacePrefixes()

      Returns an `Iterator` over the namespace prefix `String`s visible to this element. The prefixes returned by this iterator can be passed to the method `getNamespaceURI` to retrieve the URI of each namespace.
      Returns:
        an iterator over the namespace prefixes are within scope of this `SOAPElement` object
      Since:
        SAAJ 1.2

    - #### createQName

          QName createQName(String localName,
                            String prefix)
                     throws SOAPException

      Creates a `QName` whose namespace URI is the one associated with the parameter, `prefix`, in the context of this `SOAPElement`. The remaining elements of the new `QName` are taken directly from the parameters, `localName` and `prefix`.
      Parameters:
        `localName` - a `String` containing the local part of the name.
        `prefix` - a `String` containing the prefix for the name.
      Returns:
        a `QName` with the specified `localName` and `prefix`, and with a namespace that is associated with the `prefix` in the context of this `SOAPElement`. This namespace will be the same as the one that would be returned by ``getNamespaceURI(String)`` if it were given `prefix` as it's parameter.
      Throws:
        `SOAPException` - if the `QName` cannot be created.
      Since:
        SAAJ 1.3

    - #### getElementName

          Name getElementName()

      Returns the name of this `SOAPElement` object.
      Returns:
        a `Name` object with the name of this `SOAPElement` object

    - #### getElementQName

          QName getElementQName()

      Returns the qname of this `SOAPElement` object.
      Returns:
        a `QName` object with the qname of this `SOAPElement` object
      Since:
        SAAJ 1.3
      See Also:
        `getElementName()`

    - #### setElementQName

          SOAPElement setElementQName(QName newName)
                               throws SOAPException

      Changes the name of this `Element` to `newName` if possible. SOAP Defined elements such as SOAPEnvelope, SOAPHeader, SOAPBody etc. cannot have their names changed using this method. Any attempt to do so will result in a SOAPException being thrown.

      Callers should not rely on the element instance being renamed as is. Implementations could end up copying the content of the `SOAPElement` to a renamed instance.

      Parameters:
        `newName` - the new name for the `Element`.
      Returns:
        The renamed Node
      Throws:
        `SOAPException` - if changing the name of this `Element` is not allowed.
      Since:
        SAAJ 1.3

    - #### removeAttribute

          boolean removeAttribute(Name name)

      Removes the attribute with the specified name.
      Parameters:
        `name` - the `Name` object with the name of the attribute to be removed
      Returns:
        `true` if the attribute was removed successfully; `false` if it was not
      See Also:
        `removeAttribute(javax.xml.namespace.QName)`

    - #### removeAttribute

          boolean removeAttribute(QName qname)

      Removes the attribute with the specified qname.
      Parameters:
        `qname` - the `QName` object with the qname of the attribute to be removed
      Returns:
        `true` if the attribute was removed successfully; `false` if it was not
      Since:
        SAAJ 1.3
      See Also:
        `removeAttribute(Name)`

    - #### removeNamespaceDeclaration

          boolean removeNamespaceDeclaration(String prefix)

      Removes the namespace declaration corresponding to the given prefix.
      Parameters:
        `prefix` - a `String` giving the prefix for which to search
      Returns:
        `true` if the namespace declaration was removed successfully; `false` if it was not

    - #### getChildElements

          Iterator getChildElements()

      Returns an `Iterator` over all the immediate child `Node`s of this element. This includes `javax.xml.soap.Text` objects as well as `SOAPElement` objects.

      Calling this method may cause child `Element`, `SOAPElement` and `org.w3c.dom.Text` nodes to be replaced by `SOAPElement`, `SOAPHeaderElement`, `SOAPBodyElement` or `javax.xml.soap.Text` nodes as appropriate for the type of this parent node. As a result the calling application must treat any existing references to these child nodes that have been obtained through DOM APIs as invalid and either discard them or refresh them with the values returned by this `Iterator`. This behavior can be avoided by calling the equivalent DOM APIs. See javax.xml.soap for more details.

      Returns:
        an iterator with the content of this `SOAPElement` object

    - #### getChildElements

          Iterator getChildElements(Name name)

      Returns an `Iterator` over all the immediate child `Node`s of this element with the specified name. All of these children will be `SOAPElement` nodes.

      Calling this method may cause child `Element`, `SOAPElement` and `org.w3c.dom.Text` nodes to be replaced by `SOAPElement`, `SOAPHeaderElement`, `SOAPBodyElement` or `javax.xml.soap.Text` nodes as appropriate for the type of this parent node. As a result the calling application must treat any existing references to these child nodes that have been obtained through DOM APIs as invalid and either discard them or refresh them with the values returned by this `Iterator`. This behavior can be avoided by calling the equivalent DOM APIs. See javax.xml.soap for more details.

      Parameters:
        `name` - a `Name` object with the name of the child elements to be returned
      Returns:
        an `Iterator` object over all the elements in this `SOAPElement` object with the specified name
      See Also:
        `getChildElements(javax.xml.namespace.QName)`

    - #### getChildElements

          Iterator getChildElements(QName qname)

      Returns an `Iterator` over all the immediate child `Node`s of this element with the specified qname. All of these children will be `SOAPElement` nodes.

      Calling this method may cause child `Element`, `SOAPElement` and `org.w3c.dom.Text` nodes to be replaced by `SOAPElement`, `SOAPHeaderElement`, `SOAPBodyElement` or `javax.xml.soap.Text` nodes as appropriate for the type of this parent node. As a result the calling application must treat any existing references to these child nodes that have been obtained through DOM APIs as invalid and either discard them or refresh them with the values returned by this `Iterator`. This behavior can be avoided by calling the equivalent DOM APIs. See javax.xml.soap for more details.

      Parameters:
        `qname` - a `QName` object with the qname of the child elements to be returned
      Returns:
        an `Iterator` object over all the elements in this `SOAPElement` object with the specified qname
      Since:
        SAAJ 1.3
      See Also:
        `getChildElements(Name)`

    - #### setEncodingStyle

          void setEncodingStyle(String encodingStyle)
                         throws SOAPException

      Sets the encoding style for this `SOAPElement` object to one specified.
      Parameters:
        `encodingStyle` - a `String` giving the encoding style
      Throws:
        `IllegalArgumentException` - if there was a problem in the encoding style being set.
        `SOAPException` - if setting the encodingStyle is invalid for this SOAPElement.
      See Also:
        `getEncodingStyle()`

    - #### getEncodingStyle

          String getEncodingStyle()

      Returns the encoding style for this `SOAPElement` object.
      Returns:
        a `String` giving the encoding style
      See Also:
        `setEncodingStyle(java.lang.String)`

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.