blob: b9235251f1a2dd2c78922e3eef72e1ce4ef99621 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>jakarta.xml.soap</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="jakarta.xml.soap";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../jakarta/xml/bind/util/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../jakarta/xml/ws/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/xml/soap/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;jakarta.xml.soap</h1>
<div class="docSummary">
<div class="block">Provides the API for creating and building SOAP messages.</div>
</div>
<p>See:&nbsp;<a href="#package.description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/Detail.html" title="interface in jakarta.xml.soap">Detail</a></td>
<td class="colLast">
<div class="block">A container for <code>DetailEntry</code> objects.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/DetailEntry.html" title="interface in jakarta.xml.soap">DetailEntry</a></td>
<td class="colLast">
<div class="block">The content for a <code>Detail</code> object, giving details for
a <code>SOAPFault</code> object.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/Name.html" title="interface in jakarta.xml.soap">Name</a></td>
<td class="colLast">
<div class="block">A representation of an XML name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/Node.html" title="interface in jakarta.xml.soap">Node</a></td>
<td class="colLast">
<div class="block">A representation of a node (element) in an XML document.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPBody.html" title="interface in jakarta.xml.soap">SOAPBody</a></td>
<td class="colLast">
<div class="block">An object that represents the contents of the SOAP body
element in a SOAP message.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPBodyElement.html" title="interface in jakarta.xml.soap">SOAPBodyElement</a></td>
<td class="colLast">
<div class="block">A <code>SOAPBodyElement</code> object represents the contents in
a <code>SOAPBody</code> object.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPConstants.html" title="interface in jakarta.xml.soap">SOAPConstants</a></td>
<td class="colLast">
<div class="block">The definition of constants pertaining to the SOAP protocol.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPElement.html" title="interface in jakarta.xml.soap">SOAPElement</a></td>
<td class="colLast">
<div class="block">An object representing an element of a SOAP message that is allowed but not
specifically prescribed by a SOAP specification.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPEnvelope.html" title="interface in jakarta.xml.soap">SOAPEnvelope</a></td>
<td class="colLast">
<div class="block">The container for the SOAPHeader and SOAPBody portions of a
<code>SOAPPart</code> object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPFault.html" title="interface in jakarta.xml.soap">SOAPFault</a></td>
<td class="colLast">
<div class="block">An element in the <code>SOAPBody</code> object that contains
error and/or status information.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPFaultElement.html" title="interface in jakarta.xml.soap">SOAPFaultElement</a></td>
<td class="colLast">
<div class="block">A representation of the contents in
a <code>SOAPFault</code> object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPHeader.html" title="interface in jakarta.xml.soap">SOAPHeader</a></td>
<td class="colLast">
<div class="block">A representation of the SOAP header
element.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPHeaderElement.html" title="interface in jakarta.xml.soap">SOAPHeaderElement</a></td>
<td class="colLast">
<div class="block">An object representing the contents in the SOAP header part of the
SOAP envelope.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/Text.html" title="interface in jakarta.xml.soap">Text</a></td>
<td class="colLast">
<div class="block">A representation of a node whose value is text.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/AttachmentPart.html" title="class in jakarta.xml.soap">AttachmentPart</a></td>
<td class="colLast">
<div class="block">A single attachment to a <code>SOAPMessage</code> object.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/MessageFactory.html" title="class in jakarta.xml.soap">MessageFactory</a></td>
<td class="colLast">
<div class="block">A factory for creating <code>SOAPMessage</code> objects.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/MimeHeader.html" title="class in jakarta.xml.soap">MimeHeader</a></td>
<td class="colLast">
<div class="block">An object that stores a MIME header name and its value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/MimeHeaders.html" title="class in jakarta.xml.soap">MimeHeaders</a></td>
<td class="colLast">
<div class="block">A container for <code>MimeHeader</code> objects, which represent
the MIME headers present in a MIME part of a message.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SAAJMetaFactory.html" title="class in jakarta.xml.soap">SAAJMetaFactory</a></td>
<td class="colLast">
<div class="block">The access point for the implementation classes of the factories defined in the
SAAJ API.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SAAJResult.html" title="class in jakarta.xml.soap">SAAJResult</a></td>
<td class="colLast">
<div class="block">Acts as a holder for the results of a JAXP transformation or a JAXB
marshalling, in the form of a SAAJ tree.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPConnection.html" title="class in jakarta.xml.soap">SOAPConnection</a></td>
<td class="colLast">
<div class="block">A point-to-point connection that a client can use for sending messages
directly to a remote party (represented by a URL, for instance).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPConnectionFactory.html" title="class in jakarta.xml.soap">SOAPConnectionFactory</a></td>
<td class="colLast">
<div class="block">A factory for creating <code>SOAPConnection</code> objects.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPElementFactory.html" title="class in jakarta.xml.soap">SOAPElementFactory</a></td>
<td class="colLast">Deprecated
<div class="block"><span class="deprecationComment">- Use <code>jakarta.xml.soap.SOAPFactory</code> for creating SOAPElements.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPFactory.html" title="class in jakarta.xml.soap">SOAPFactory</a></td>
<td class="colLast">
<div class="block"><code>SOAPFactory</code> is a factory for creating various objects
that exist in the SOAP XML tree.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPMessage.html" title="class in jakarta.xml.soap">SOAPMessage</a></td>
<td class="colLast">
<div class="block">The root class for all SOAP messages.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPPart.html" title="class in jakarta.xml.soap">SOAPPart</a></td>
<td class="colLast">
<div class="block">The container for the SOAP-specific portion of a <code>SOAPMessage</code>
object.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Exception</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../jakarta/xml/soap/SOAPException.html" title="class in jakarta.xml.soap">SOAPException</a></td>
<td class="colLast">
<div class="block">An exception that signals that a SOAP exception has occurred.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package.description">
<!-- -->
</a>
<h2 title="Package jakarta.xml.soap Description">Package jakarta.xml.soap Description</h2>
<div class="block">Provides the API for creating and building SOAP messages. This package
is defined in the <i>Jakarta SOAP with Attachments</i> specification.
<p> The API in the <code>jakarta.xml.soap</code> package allows you to do the following:
<ul>
<li>create a point-to-point connection to a specified endpoint
<li>create a SOAP message
<li>create an XML fragment
<li>add content to the header of a SOAP message
<li>add content to the body of a SOAP message
<li>create attachment parts and add content to them
<li>access/add/modify parts of a SOAP message
<li>create/add/modify SOAP fault information
<li>extract content from a SOAP message
<li>send a SOAP request-response message
</ul>
<p>
References in this document to SAAJ refer to the Jakarta SOAP with Attachments API unless otherwise noted.<br>
References in this document to JAXB refer to the Jakarta XML Binding unless otherwise noted.
<p>
In addition the APIs in the <code>jakarta.xml.soap</code> package extend
their counterparts in the <code>org.w3c.dom</code> package. This means that
the <code>SOAPPart</code> of a <code>SOAPMessage</code> is also a DOM Level
2 <code>Document</code>, 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 <a href="../../../jakarta/xml/soap/SOAPElement.html#getChildElements--"><code>SOAPElement.getChildElements()</code></a>)
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.
<p>
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.
<h2>Discovery of SAAJ implementation</h2>
<p>
There are several factories defined in the SAAJ API to discover and load specific implementation:
<ul>
<li><a href="../../../jakarta/xml/soap/SOAPFactory.html" title="class in jakarta.xml.soap"><code>SOAPFactory</code></a>
<li><a href="../../../jakarta/xml/soap/MessageFactory.html" title="class in jakarta.xml.soap"><code>MessageFactory</code></a>
<li><a href="../../../jakarta/xml/soap/SOAPConnectionFactory.html" title="class in jakarta.xml.soap"><code>SOAPConnectionFactory</code></a>
<li><a href="../../../jakarta/xml/soap/SAAJMetaFactory.html" title="class in jakarta.xml.soap"><code>SAAJMetaFactory</code></a>
</ul>
First three define <code>newInstance()</code> method which uses a common lookup procedure to determine
the implementation class:
<ul>
<li>Checks if a system property with the same name as the factory class is set (e.g.
<code>jakarta.xml.soap.SOAPFactory</code>). If such property exists then its value is assumed to be the fully qualified
name of the implementation class. This phase of the look up enables per-JVM override of the SAAJ implementation.
<li>Use the configuration file "jaxm.properties". The file is in standard
<code>Properties</code> format and typically located in the
<code>conf</code> directory of the Java installation. It contains the fully qualified
name of the implementation class with the key being the system property
defined above.
<li> Use the service-provider loading facilities, defined by the <code>ServiceLoader</code> class,
to attempt to locate and load an implementation of the service using the default loading mechanism.
<li> Finally, if all the steps above fail, <a href="../../../jakarta/xml/soap/SAAJMetaFactory.html" title="class in jakarta.xml.soap"><code>SAAJMetaFactory</code></a> instance is used
to locate specific implementation (for <a href="../../../jakarta/xml/soap/MessageFactory.html" title="class in jakarta.xml.soap"><code>MessageFactory</code></a> and <a href="../../../jakarta/xml/soap/SOAPFactory.html" title="class in jakarta.xml.soap"><code>SOAPFactory</code></a>)
or platform default implementation is used (<a href="../../../jakarta/xml/soap/SOAPConnectionFactory.html" title="class in jakarta.xml.soap"><code>SOAPConnectionFactory</code></a>).
Whenever <a href="../../../jakarta/xml/soap/SAAJMetaFactory.html" title="class in jakarta.xml.soap"><code>SAAJMetaFactory</code></a> is used, its lookup procedure to get actual instance is performed.
</ul></div>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../jakarta/xml/bind/util/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../jakarta/xml/ws/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/xml/soap/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>