Programming Web Services for WebLogic Server
Data Types and Data Binding
The following sections provide information about supported data types (both built-in and user-defined) and data binding:
Overview of Data Types and Data Binding
As in previous releases, WebLogic Web Services support a full set of built-in XML Schema, Java, and SOAP types, as specified by the JAX-RPC 1.1 specification, that you can use in your Web Service operations without performing any additional programming steps. Built-in data types are those such as integer
, string
, and time
.
Additionally, you can use a variety of user-defined XML and Java data types, including com.bea.xml.XMLBeans
, as input parameters and return values of your Web Service. User-defined data types are those that you create from XML Schema or Java building blocks, such as <xsd:complexType>
or JavaBeans. The WebLogic Web Services Ant tasks, such as jwsc
and clientgen
, automatically generate the data binding artifacts needed to convert the user-defined data types between their XML and Java representations. The XML representation is used in the SOAP request and response messages, and the Java representation is used in the JWS that implements the Web Service. The conversion of data between its XML and Java representations is called data binding.
Supported Built-In Data Types
The following sections describe the built-in data types supported by WebLogic Web Services and the mapping between their XML and Java representations. As long as the data types of the parameters and return values of the back-end components that implement your Web Service are in the set of built-in data types, WebLogic Server automatically converts the data between XML and Java.
If, however, you use user-defined data types, then you must create the data binding artifacts that convert the data between XML and Java.WebLogic Server includes the jwsc
and wsdl2service
Ant tasks that can generate the data binding artifacts for most user-defined data types. See Supported User-Defined Data Types for a list of supported XML and Java data types.
XML-to-Java Mapping for Built-In Data Types
The following table lists the supported XML Schema data types (target namespace http://www.w3.org/2001/XMLSchema
) and their corresponding Java data types.
For a list of the supported user-defined XML data types, see Java-to-XML Mapping for Built-In Data Types.
Table 8-1 Mapping XML Schema Data Types to Java Data Types
XML Schema Data Type
|
Equivalent Java Data Type
(lower case indicates a primitive data type)
|
boolean
|
boolean
|
byte
|
byte
|
short
|
short
|
int
|
int
|
long
|
long
|
float
|
float
|
double
|
double
|
integer
|
java.math.BigInteger
|
decimal
|
java.math.BigDecimal
|
string
|
java.lang.String
|
dateTime
|
java.util.Calendar
|
base64Binary
|
byte[]
|
hexBinary
|
byte[]
|
duration
|
java.lang.String
|
time
|
java.util.Calendar
|
date
|
java.util.Calendar
|
gYearMonth
|
java.lang.String
|
gYear
|
java.lang.String
|
gMonthDay
|
java.lang.String
|
gDay
|
java.lang.String
|
gMonth
|
java.lang.String
|
anyURI
|
java.net.URI
|
NOTATION
|
java.lang.String
|
token
|
java.lang.String
|
normalizedString
|
java.lang.String
|
language
|
java.lang.String
|
Name
|
java.lang.String
|
NMTOKEN
|
java.lang.String
|
NCName
|
java.lang.String
|
NMTOKENS
|
java.lang.String[]
|
ID
|
java.lang.String
|
IDREF
|
java.lang.String
|
ENTITY
|
java.lang.String
|
IDREFS
|
java.lang.String[]
|
ENTITIES
|
java.lang.String[]
|
nonPositiveInteger
|
java.math.BigInteger
|
nonNegativeInteger
|
java.math.BigInteger
|
negativeInteger
|
java.math.BigInteger
|
unsignedLong
|
java.math.BigInteger
|
positiveInteger
|
java.math.BigInteger
|
unsignedInt
|
long
|
unsignedShort
|
int
|
unsignedByte
|
short
|
Qname
|
javax.xml.namespace.QName
|
Java-to-XML Mapping for Built-In Data Types
For a list of the supported user-defined Java data types, see Supported Java User-Defined Data Types.
Table 8-2 Mapping Java Data Types to XML Schema Data Types
Java Data Type (lower case indicates a primitive data type)
|
Equivalent XML Schema Data Type
|
int
|
int
|
short
|
short
|
long
|
long
|
float
|
float
|
double
|
double
|
byte
|
byte
|
boolean
|
boolean
|
char
|
string (with facet of length=1)
|
java.lang.Integer
|
int
|
java.lang.Short
|
short
|
java.lang.Long
|
long
|
java.lang.Float
|
float
|
java.lang.Double
|
double
|
java.lang.Byte
|
byte
|
java.lang.Boolean
|
boolean
|
java.lang.Character
|
string (with facet of length=1)
|
java.lang.String
|
string
|
java.math.BigInteger
|
integer
|
java.math.BigDecimal
|
decimal
|
java.util.Calendar
|
dateTime
|
java.util.Date
|
dateTime
|
byte[]
|
base64Binary
|
javax.xml.namespace.QName
|
Qname
|
java.net.URI
|
anyURI
|
Supported User-Defined Data Types
The tables in the following sections list the user-defined XML and Java data types for which the jwsc
and wsdl2service
Ant tasks can generate data binding artifacts, such as the corresponding Java or XML representation, the JAX-RPC type mapping file, and so on.
If your XML or Java data type is not listed in these tables, and it is not one of the built-in data types listed in Supported Built-In Data Types, then you must create the user-defined data type artifacts manually.
Supported XML User-Defined Data Types
The following table lists the XML Schema data types supported by the jwsc
and wsdl2service
Ant tasks and their equivalent Java data type or mapping mechanism.
For details and examples of the data types, see the JAX-RPC specification.
Table 8-3 Supported User-Defined XML Schema Data Types
XML Schema Data Type
|
Equivalent Java Data Type or Mapping Mechanism
|
Enumeration
|
Typesafe enumeration pattern. For details, see Section 4.2.4 of the JAX-RPC specification.
|
<xsd:complexType> with elements of both simple and complex types.
|
JavaBean
|
<xsd:complexType> with simple content.
|
JavaBean
|
<xsd:attribute> in <xsd:complexType>
|
Property of a JavaBean
|
Derivation of new simple types by restriction of an existing simple type.
|
Equivalent Java data type of simple type.
|
Facets used with restriction element.
|
Facets not enforced during serialization and deserialization.
|
<xsd:list>
|
Array of the list data type.
|
Array derived from soapenc:Array by restriction using the wsdl:arrayType attribute.
|
Array of the Java equivalent of the arrayType data type.
|
Array derived from soapenc:Array by restriction.
|
Array of Java equivalent.
|
Derivation of a complex type from a simple type.
|
JavaBean with a property called _value whose type is mapped from the simple type according to the rules in this section.
|
<xsd:anyType>
|
java.lang.Object.
|
<xsd:union>
|
Common parent type of union members.
|
<xsi:nil> and <xsd:nillable> attribute
|
Java null value.
If the XML data type is built-in and usually maps to a Java primitive data type (such as int or short ), then the XML data type is actually mapped to the equivalent object wrapper type (such as java.lang.Integer or java.lang.Short ).
|
Derivation of complex types
|
Mapped using Java inheritance.
|
Abstract types
|
Abstract Java data type.
|
Supported Java User-Defined Data Types
The following table lists the Java user-defined data types supported by the jwsc
and sdl2service
Ant tasks and their equivalent XML Schema data type.
Table 8-4 Supported User-Defined Java Data Types
Java Data Type
|
Equivalent XML Schema Data Type
|
JavaBean whose properties are any supported data type.
|
<xsd:complexType> whose content model is a <xsd:sequence> of elements corresponding to JavaBean properties.
|
Array of any supported data type (when used as a JavaBean property)
|
An element in a <xsd:complexType> with the maxOccurs attribute set to unbounded .
|
java.lang.Object
Note: The data type of the runtime object must be a known type.
|
<xsd:anyType>
|
Note: The following user-defined Java data types, used as parameters or return values of a WebLogic Web Service in Version 8.1, are no longer supported:
java.util.List
(when used as a JavaBean property)java.util.ArrayList
(when used as a JavaBean property)java.util.LinkedList
(when used as a JavaBean property)java.util.Vector
(when used as a JavaBean property)java.util.Stack
(when used as a JavaBean property)java.util.Collection
(when used as a JavaBean property)java.util.Set
(when used as a JavaBean property)java.util.HashSet
(when used as a JavaBean property)java.util.SortedSet
(when used as a JavaBean property)java.util.TreeSet
(when used as a JavaBean property)- JAX-RPC-style enumeration class
- JAX-RPC-style enumeration class