javax.xml.soap (Java Platform SE 8 )
Keywords: javax.xml.soap package
Date: 2018-07-01

# Package javax.xml.soap

Provides the API for creating and building SOAP messages.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Detail | A container for `DetailEntry` objects.
  DetailEntry | The content for a `Detail` object, giving details for a `SOAPFault` object.
  Name | A representation of an XML name.
  Node | A representation of a node (element) in an XML document.
  SOAPBody | An object that represents the contents of the SOAP body element in a SOAP message.
  SOAPBodyElement | A `SOAPBodyElement` object represents the contents in a `SOAPBody` object.
  SOAPConstants | The definition of constants pertaining to the SOAP protocol.
  SOAPElement | An object representing an element of a SOAP message that is allowed but not specifically prescribed by a SOAP specification.
  SOAPEnvelope | The container for the SOAPHeader and SOAPBody portions of a `SOAPPart` object.
  SOAPFault | An element in the `SOAPBody` object that contains error and/or status information.
  SOAPFaultElement | A representation of the contents in a `SOAPFault` object.
  SOAPHeader | A representation of the SOAP header element.
  SOAPHeaderElement | An object representing the contents in the SOAP header part of the SOAP envelope.
  Text | A representation of a node whose value is text.

- Class Summary
  Class | Description
  --- | ---
  AttachmentPart | A single attachment to a `SOAPMessage` object.
  MessageFactory | A factory for creating `SOAPMessage` objects.
  MimeHeader | An object that stores a MIME header name and its value.
  MimeHeaders | A container for `MimeHeader` objects, which represent the MIME headers present in a MIME part of a message.
  SAAJMetaFactory | The access point for the implementation classes of the factories defined in the SAAJ API.
  SAAJResult | Acts as a holder for the results of a JAXP transformation or a JAXB marshalling, in the form of a SAAJ tree.
  SOAPConnection | A point-to-point connection that a client can use for sending messages directly to a remote party (represented by a URL, for instance).
  SOAPConnectionFactory | A factory for creating `SOAPConnection` objects.
  SOAPElementFactory | Deprecated - Use `javax.xml.soap.SOAPFactory` for creating SOAPElements.
  SOAPFactory | `SOAPFactory` is a factory for creating various objects that exist in the SOAP XML tree.
  SOAPMessage | The root class for all SOAP messages.
  SOAPPart | The container for the SOAP-specific portion of a `SOAPMessage` object.

- Exception Summary
  Exception | Description
  --- | ---
  SOAPException | An exception that signals that a SOAP exception has occurred.

## Package javax.xml.soap Description

Provides the API for creating and building SOAP messages. This package is defined in the SOAP with Attachments API for JavaTM (SAAJ) 1.3 specification.

The API in the `javax.xml.soap` package allows you to do the following:

- create a point-to-point connection to a specified endpoint
- create a SOAP message
- create an XML fragment
- add content to the header of a SOAP message
- add content to the body of a SOAP message
- create attachment parts and add content to them
- access/add/modify parts of a SOAP message
- create/add/modify SOAP fault information
- extract content from a SOAP message
- send a SOAP request-response message

In addition the APIs in the `javax.xml.soap` package extend their counterparts in the `org.w3c.dom` package. This means that the `SOAPPart` of a `SOAPMessage` is also a DOM Level 2 `Document`, and can be manipulated as such by applications, tools and libraries that use DOM (see http://www.w3.org/DOM/ for more information). It is important to note that, while it is possible to use DOM APIs to add ordinary DOM nodes to a SAAJ tree, the SAAJ APIs are still required to return SAAJ types when examining or manipulating the tree. In order to accomplish this the SAAJ APIs (specifically `SOAPElement.getChildElements()`) are allowed to silently replace objects that are incorrectly typed relative to SAAJ requirements with equivalent objects of the required type. These replacements must never cause the logical structure of the tree to change, so from the perspective of the DOM APIs the tree will remain unchanged. However, the physical composition of the tree will have changed so that references to the nodes that were replaced will refer to nodes that are no longer a part of the tree. The SAAJ APIs are not allowed to make these replacements if they are not required so the replacement objects will never subsequently be silently replaced by future calls to the SAAJ API.

What this means in practical terms is that an application that starts to use SAAJ APIs on a tree after manipulating it using DOM APIs must assume that the tree has been translated into an all SAAJ tree and that any references to objects within the tree that were obtained using DOM APIs are no longer valid. Switching from SAAJ APIs to DOM APIs is not allowed to cause invalid references and neither is using SAAJ APIs exclusively. It is only switching from using DOM APIs on a particular SAAJ tree to using SAAJ APIs that causes the risk of invalid references.

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, 2018, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.