public abstract class SOAPFactory {
// Public Constructors
public SOAPFactory( );
// Public Class Methods
public static SOAPFactory newInstance( ) throws SOAPException;
// Public Instance Methods
public abstract Detail createDetail( ) throws SOAPException;
public abstract SOAPElement createElement(String localName) throws SOAPException;
public abstract SOAPElement createElement(Name name) throws SOAPException;
public abstract SOAPElement createElement(String localName, String prefix,
String uri) throws SOAPException;
public abstract Name createName(String localName) throws SOAPException;
public abstract Name createName(String localName, String prefix,
String uri) throws SOAPException;
}
SOAPFactory is an abstract factory that can be
used to create Detail, Name,
and SOAPElement objects. Although all of these
elements can be created using methods provided by various objects
that are part of a SOAP message (such as
SOAPEnvelope), it is often convenient to be able
to construct message parts without having a reference to a
SOAPMessage. In such cases, you should use the
SOAPFactory class.
To get a reference to a SOAPFactory object, use
the static newInstance( ) method, which uses an
algorithm similar to that described for the
SOAPConnectionFactory class to locate a concrete
implementation. By default, the reference implementation returns an
object of type
com.sun.xml.messaging.saaj.soap.SOAPFactoryImpl.
The createElement( ) method that accepts a single
argument of type String returns a
SOAPElement whose local name is given by the
argument, and that does not have a namespace qualifier. An element
created in this way is qualified by the default namespace, which can
be designated by adding a suitable namespace declaration to the
element itself or to one of its ancestors. You can create an element
with an explicit namespace by using the three-argument variant of
createElement( ), which requires the namespace URI
and the namespace prefix in addition to the local part of the element
name. Here's a typical example of the usage of this
method:
SOAPElement element = factory.createElement("BookTitle", "book",
"urn:BookService");
The serialized form of this element, when incorporated into a SOAP
message, is book:BookTitle
xmlns:book="urn:BookService".
The variant of createElement( ) that accepts an
argument of type Name returns a
SOAPElement, the name of which is taken from the
local part of the supplied argument. The element may or may not be
explicitly namespace-qualified, depending on whether the
Name contains a namespace.
The createName( ) methods return instances of the
Name interface that have a specified local part
and an optional namespace URI and namespace prefix. Refer to the
description of the Name interface in this chapter
for a discussion of the use of Name objects and
namespaces.