##### XML-RPC

- Overview
- Download
- Changes
- Mailing Lists
- Contributing
- XML-RPC 2
- Links

##### Documentation

- Client Classes
- Server Side XML-RPC
- Vendor Extensions
- SSL
- Introspection
- Advanced Techniques
- XML-RPC Types
- FAQ
- Javadocs

##### Project Documentation

- Project Information
- Project Reports

## Data Types

The XML-RPC specification defines the following available data types:

Java Type | XML Tag Name | Description
Integer | i4, or int | A 32-bit, signed, and non-null, integer value.
Boolean | boolean | A non-null, boolean value (0, or 1).
String | string | A string, non-null.
Double | double | A signed, non-null, double precision, floating point number. (64 bit)
java.util.Date | dateTime.iso8601 | A pseudo ISO8601 timestamp, like 19980717T14:08:55. However, compared to a true ISO8601 value, milliseconds, and time zone informations are missing.
byte[] | base64 | A base64 encoded byte array.
java.util.Map | struct | A key value pair. The keys are strings. The values may be any valid data type, including another map.
Object[] java.util.List | array | An array of objects. The array elements may be any valid data type, including another array. The server may return other arrays (for example String[]) or lists (using generics). However, the client will always return an Object[], because the XML-RPC protocol doesn't include between different array types.

If the property `enabledForExtensions` is set, then additional data types become valid. (Both client and server do support this property.)

Java Type | XML Tag Name | Description
None | ex:nil | A typeless null value.
Byte | ex:i1 | A 8-bit, signed, and non-null, integer value.
Float | ex:float | A signed, non-null, double precision, floating point number. (32 bit)
Long | ex:i8 | A 64-bit, signed, and non-null, integer value.
org.w3c.dom.Node | ex:dom | A DOM node, which is being transmitted as an embedded XML fragment.
Short | ex:i2 | A 16-bit, signed, and non-null, integer value.
java.io.Serializable | ex:serializable | An object, which is converted into a serialized representation and transmitted as a base 64 encoded byte array.
BigDecimal | ex:bigdecimal | A BigDecimal
BigInteger | ex:biginteger | A BigInteger
java.util.Calendar | ex:dateTime | Unlike the dateTime.iso8601 type, this is a full blown xs:dateTime value. In particular, it includes milliseconds, and timezone settings.

In the above table, the prefix `ex` refers to the namespace URI `http://ws.apache.org/xmlrpc/namespaces/extensions`.