Data Types

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

Java TypeXML Tag NameDescription
Integeri4, or
int
A 32-bit, signed, and non-null,
integer value.
BooleanbooleanA non-null, boolean value (0, or
1).
StringstringA string, non-null.
DoubledoubleA signed, non-null, double
precision, floating point number.
(64 bit)
java.util.DatedateTime.iso8601A pseudo ISO8601 timestamp, like
19980717T14:08:55. However,
compared to a true ISO8601 value,
milliseconds, and time zone
informations are missing.
byte[]base64A base64 encoded byte array.
java.util.MapstructA key value pair. The keys are
strings. The values may be any
valid data type, including another
map.
Object[]
java.util.List
arrayAn array of objects. The array
elements may be any valid data
type, including another array.

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

Java TypeXML Tag NameDescription
Noneex:nilA typeless null value.
Byteex:i1A 8-bit, signed, and non-null,
integer value.
Floatex:floatA signed, non-null, double
precision, floating point number.
(32 bit)
Longex:i8A 64-bit, signed, and non-null,
integer value.
org.w3c.dom.Nodeex:domA DOM node, which is being
transmitted as an embedded XML
fragment.
Shortex:i2A 16-bit, signed, and non-null,
integer value.
java.io.Serializableex:serializableAn object, which is converted into
a serialized representation and
transmitted as a base 64 encoded
byte array.
BigDecimalex:bigdecimalA BigDecimal
BigIntegerex:bigintegerA BigInteger
java.util.Calendarex:dateTimeUnlike 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.