public interface TypeMapping {
// Public Instance Methods
javax.xml.namespace.QName xmlType);
public abstract SerializerFactory getSerializer(Class javaType,
javax.xml.namespace.QName xmlType);
public abstract String[ ] getSupportedEncodings( );
public abstract boolean isRegistered(Class javaType,
javax.xml.namespace.QName xmlType);
public abstract void register(Class javaType, javax.xml.namespace.QName xmlType,
SerializerFactory sf, DeserializerFactory dsf);
public abstract void removeDeserializer(Class javaType,
javax.xml.namespace.QName xmlType);
public abstract void removeSerializer(Class javaType,
javax.xml.namespace.QName xmlType);
public abstract void setSupportedEncodings(String[ ] encodingStyleURIs);
}
A TypeMapping object contains serializers and
deserializers that can convert between Java objects or primitive
types and a corresponding XML representation. A single
TypeMapping may support one or several encoding
styles. The supported encodings may be obtained by calling the
getSupportedEncodings( ) method and set using
setSupportedEncodings( ), both of which deal with
an array of strings that represent encoding scheme URIs (such as
http://schemas.xmlsoap.org/soap/encoding/, which
represents the SOAP section 5 encoding rules).
The register( ) method is used to associate a
SerializerFactory and a
DeserializerFactory with a (Java object, XML type)
pair that represents the start and endpoints of the conversion
process that the serializers and deserializers obtained from those
factories can perform. The XML type is specified using constants
defined by the javax.xml.rpc.encoding.XMLType
class, whereas the Java type is represented by its
Class object. Although it is most likely that both
a SerializerFactory and a
DeserializerFactory will be registered together,
it is possible to register only one of the pair by specifying the
argument for the other as null. The
removeSerializer( ) method removes the
SerializerFactory mapping for a specified Java
type to XML type mapping, and throws a
JAXRPCException if there is no mapping for the
given combination. The removeDeserializer( )
similarly removes a DeserializerFactory.
The getSerializer( ) and getDeserializer(
) methods return a SerializerFactory or
DeserializerFactory for a given (Java type, XML
type) pair, or returns null if none is registered.
You can determine whether either a
SerializerFactory or
DeserializerFactory is registered for a given
pairing using the isRegistered( ) method. This
method does not, however, tell you which of these objects is
registered if only one of them is.