The container for the SOAP-specific portion of a
SOAPMessage
object. All messages are required to have a
SOAP part, so when a
SOAPMessage
object is
created, it will automatically have a
SOAPPart
object.
A
SOAPPart
object is a MIME part and has the
MIME headers Content-Id, Content-Location, and Content-Type.
Because the value of Content-Type must be "text/xml", a
SOAPPart
object automatically has a MIME header of
Content-Type with its value set to "text/xml". The value must
be "text/xml" because content in the SOAP part of a message
must be in XML format. Content that is not of type "text/xml"
must be in an
AttachmentPart
object rather than in
the
SOAPPart
object.
When a message is sent, its SOAP part must have the MIME
header Content-Type set to "text/xml". Or, from the other
perspective, the SOAP part of any message that is received must
have the MIME header Content-Type with a value of
"text/xml".
A client can access the
SOAPPart
object of a
SOAPMessage
object by calling the method
SOAPMessage.getSOAPPart
. The following line of code, in
which
message
is a
SOAPMessage
object, retrieves the SOAP part of a message.
SOAPPart soapPart = message.getSOAPPart();
A
SOAPPart
object contains a
SOAPEnvelope
object, which in turn contains a
SOAPBody
object and a
SOAPHeader
object.
The
SOAPPart
method
getEnvelope
can
be used to retrieve the
SOAPEnvelope
object.
addMimeHeader
public void addMimeHeader(String name,
String value)
Creates a
MimeHeader
object with the specified
name and value and adds it to this
SOAPPart
object. If a
MimeHeader
with the specified
name already exists, this method adds the specified value
to the already existing value(s).
Note that RFC822 headers can contain only US-ASCII
characters.
name
- a String
giving the
header namevalue
- a String
giving the
value to be set or added
getAllMimeHeaders
public Iterator getAllMimeHeaders()
Retrieves all the headers for this SOAPPart
object as an iterator over the MimeHeader
objects.
- an
Iterator
object with all of the Mime
headers for this SOAPPart
object
getContent
public Source getContent()
throws SOAPException
Returns the content of the SOAPEnvelope as a JAXP
Source
object.
- the content as a
javax.xml.transform.Source
object
SOAPException
- if the implementation cannot
convert the specified Source
object
setContent(javax.xml.transform.Source)
getContentId
public String getContentId()
Retrieves the value of the MIME header whose name is
"Content-Id".
- a
String
giving the value of the MIME
header named "Content-Id"
setContentId(java.lang.String)
getContentLocation
public String getContentLocation()
Retrieves the value of the MIME header whose name is
"Content-Location".
- a
String
giving the value of the MIME
header whose name is "Content-Location"
setContentLocation(java.lang.String)
getEnvelope
public SOAPEnvelope getEnvelope()
throws SOAPException
Gets the SOAPEnvelope
object associated with
this SOAPPart
object. Once the SOAP envelope is
obtained, it can be used to get its contents.
- the
SOAPEnvelope
object for this
SOAPPart
object
SOAPException
- if there is a SOAP error
getMatchingMimeHeaders
public Iterator getMatchingMimeHeaders(names[] )
Retrieves all MimeHeader
objects that match
a name in the given array.
- all of the MIME headers that match one of the names
in the given array, returned as an
Iterator
object
getMimeHeader
public String[] getMimeHeader(String name)
Gets all the values of the MimeHeader
object
in this SOAPPart
object that is identified by
the given String
.
name
- the name of the header; example:
"Content-Type"
- a
String
array giving all the values for
the specified header
setMimeHeader(java.lang.String, java.lang.String)
getNonMatchingMimeHeaders
public Iterator getNonMatchingMimeHeaders(names[] )
Retrieves all MimeHeader
objects whose name
does not match a name in the given array.
- all of the MIME headers in this
SOAPPart
object except those that match one of the names in the
given array. The nonmatching MIME headers are returned as
an Iterator
object.
removeAllMimeHeaders
public void removeAllMimeHeaders()
Removes all the MimeHeader
objects for this
SOAPEnvelope
object.
removeMimeHeader
public void removeMimeHeader(String header)
Removes all MIME headers that match the given name.
header
- a String
giving
the name of the MIME header(s) to be removed
setContent
public void setContent(Source source)
throws SOAPException
Sets the content of the SOAPEnvelope
object
with the data from the given Source
object.
source
- javax.xml.transform.Source object with the data to
be set
SOAPException
- if there is a problem in
setting the source
getContent()
setContentId
public void setContentId(String contentId)
Sets the value of the MIME header named "Content-Id" to
the given String
.
contentId
- a String
giving
the value of the MIME header "Content-Id"
getContentId()
setContentLocation
public void setContentLocation(String contentLocation)
Sets the value of the MIME header "Content-Location" to
the given String
.
contentLocation
- a String
giving the value of the MIME header
"Content-Location"
getContentLocation()
setMimeHeader
public void setMimeHeader(String name,
String value)
Changes the first header entry that matches the given
header name so that its value is the given value, adding a
new header with the given name and value if no existing
header is a match. If there is a match, this method clears
all existing values for the first header that matches and
sets the given value instead. If more than one header has
the given name, this method removes all of the matching
headers after the first one.
Note that RFC822 headers can contain only US-ASCII
characters.
name
- a String
giving the
header name for which to searchvalue
- a String
giving the
value to be set. This value will be substituted for the
current value(s) of the first header that is a match if
there is one. If there is no match, this value will be
the value for a new MimeHeader
object.
getMimeHeader(java.lang.String)