type=page
status=published
title=Types Supported by JAX-WS
next=jaxws004.html
prev=jaxws002.html
~~~~~~
= Types Supported by JAX-WS


[[BNAZC]]

[[types-supported-by-jax-ws]]
Types Supported by JAX-WS
-------------------------

JAX-WS delegates the mapping of Java programming language types to and
from XML definitions to JAXB. Application developers don't need to know
the details of these mappings but should be aware that not every class
in the Java language can be used as a method parameter or return type in
JAX-WS.

The following sections explain the default schema-to-Java and
Java-to-schema data type bindings:

* link:#BNAZT[Schema-to-Java Mapping]
* link:#BNAZW[Java-to-Schema Mapping]

[[BNAZT]]

[[schema-to-java-mapping]]
Schema-to-Java Mapping
~~~~~~~~~~~~~~~~~~~~~~

The Java language provides a richer set of data types than XML schema.
link:#BNAZU[Table 31-1] lists the mapping of XML data types to Java data
types in JAXB.

[[sthref135]][[BNAZU]]

*Table 31-1 Mapping of XML Data Types to Java Data Types in JAXB*

[width="50%",cols="20%,30%"]
|=========================================================
|*XML Schema Type* |*Java Data Type*
|`xsd:string` |`java.lang.String`
|`xsd:integer` |`java.math.BigInteger`
|`xsd:int` |`int`
|`xsd.long` |`long`
|`xsd:short` |`short`
|`xsd:decimal` |`java.math.BigDecimal`
|`xsd:float` |`float`
|`xsd:double` |`double`
|`xsd:boolean` |`boolean`
|`xsd:byte` |`byte`
|`xsd:QName` |`javax.xml.namespace.QName`
|`xsd:dateTime` |`javax.xml.datatype.XMLGregorianCalendar`
|`xsd:base64Binary` |`byte[]`
|`xsd:hexBinary` |`byte[]`
|`xsd:unsignedInt` |`long`
|`xsd:unsignedShort` |`int`
|`xsd:unsignedByte` |`short`
|`xsd:time` |`javax.xml.datatype.XMLGregorianCalendar`
|`xsd:date` |`javax.xml.datatype.XMLGregorianCalendar`
|`xsd:g` |`javax.xml.datatype.XMLGregorianCalendar`
|`xsd:anySimpleType` |`java.lang.Object`
|`xsd:anySimpleType` |`java.lang.String`
|`xsd:duration` |`javax.xml.datatype.Duration`
|`xsd:NOTATION` |`javax.xml.namespace.QName`
|=========================================================


[[BNAZW]]

[[java-to-schema-mapping]]
Java-to-Schema Mapping
~~~~~~~~~~~~~~~~~~~~~~

link:#BNAZX[Table 31-2] shows the default mapping of Java classes to XML
data types.

[[sthref136]][[BNAZX]]

*Table 31-2 Mapping of Java Classes to XML Data Types in JAXB*

[width="50%",cols="30%,20%"]
|=============================================================
|*Java Class* |*XML Data Type*
|`java.lang.String` |`xs:string`
|`java.math.BigInteger` |`xs:integer`
|`java.math.BigDecimal` |`xs:decimal`
|`java.util.Calendar` |`xs:dateTime`
|`java.util.Date` |`xs:dateTime`
|`javax.xml.namespace.QName` |`xs:QName`
|`java.net.URI` |`xs:string`
|`javax.xml.datatype.XMLGregorianCalendar` |`xs:anySimpleType`
|`javax.xml.datatype.Duration` |`xs:duration`
|`java.lang.Object` |`xs:anyType`
|`java.awt.Image` |`xs:base64Binary`
|`javax.activation.DataHandler` |`xs:base64Binary`
|`javax.xml.transform.Source` |`xs:base64Binary`
|`java.util.UUID` |`xs:string`
|=============================================================
