When a message part is defined using one of the XML Schema primitive types, the generated parameter's type is mapped to a corresponding Java native type. The same pattern is used when mapping elements that are defined within the scope of a complex type. The resulting field is of the corresponding Java native type.
Table 12.1 lists the mapping between XML Schema primitive types and Java native types.
Table 12.1. XML Schema Primitive Type to Java Native Type Mapping
| XML Schema Type | Java Type |
|---|---|
| xsd:string | String |
| xsd:integer | BigInteger |
| xsd:int | int |
| xsd:long | long |
| xsd:short | short |
| xsd:decimal | BigDecimal |
| xsd:float | float |
| xsd:double | double |
| xsd:boolean | boolean |
| xsd:byte | byte |
| xsd:QName | QName |
| xsd:dateTime | XMLGregorianCalendar |
| xsd:base64Binary | byte[] |
| xsd:hexBinary | byte[] |
| xsd:unsignedInt | long |
| xsd:unsignedShort | int |
| xsd:unsignedByte | short |
| xsd:time | XMLGregorianCalendar |
| xsd:date | XMLGregorianCalendar |
| xsd:g | XMLGregorianCalendar |
| xsd:anySimpleType [a] | Object |
| xsd:anySimpleType [b] | String |
| xsd:duration | Duration |
| xsd:NOTATION | QName |
[a] For elements of this type. [b] For attributes of this type. | |
Mapping XML Schema primitive types to Java primitive types does not work for all possible XML Schema constructs. Several cases require that an XML Schema primitive type is mapped to the Java primitive type's corresponding wrapper type. These cases include:
An element element with its nillable attribute set to
true as shown:
<element name="finned" type="xsd:boolean"
nillable="true" />An element element with its minOccurs attribute set to
0 and its maxOccurs attribute set to
1, or its maxOccurs attribute not specified, as shown :
<element name="plane" type="xsd:string" minOccurs="0" />
An attribute element with its use attribute set to
optional, or not specified, and having neither its default attribute
nor its fixed attribute specified, as shown:
<element name="date">
<complexType>
<sequence/>
<attribute name="calType" type="xsd:string"
use="optional" />
</complexType>
</element>Table 12.2 shows how XML Schema primitive types are mapped into Java wrapper classes in these cases.
Table 12.2. Primitive Schema Type to Java Wrapper Class Mapping
| Schema Type | Java Type |
|---|---|
| xsd:int | java.lang.Integer |
| xsd:long | java.lang.Long |
| xsd:short | java.lang.Short |
| xsd:float | java.lang.Float |
| xsd:double | java.lang.Double |
| xsd:boolean | java.lang.Boolean |
| xsd:byte | java.lang.Byte |
| xsd:unsignedByte | java.lang.Short |
| xsd:unsignedShort | java.lang.Integer |
| xsd:unsignedInt | java.lang.Long |
| xsd:unsignedLong | java.math.BigInteger |
| xsd:duration | java.lang.String |