Java Platform, Enterprise Edition (Java EE) 8 The Java EE Tutorial

## 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:

- Schema-to-Java Mapping

- Java-to-Schema Mapping

### Schema-to-Java Mapping

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

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

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`

### Java-to-Schema Mapping

Table 31-2 shows the default mapping of Java classes to XML data types.

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

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`

Copyright © 2017, Oracle and/or its affiliates. All rights reserved.