chickadee » xml-rpc » xml-rpc-parsers

xml-rpc-parsers #!optional alistparameter

This parameter controls how XML-RPC values are decoded back into Scheme values. The keys of this alist are symbols, the values are conversion procedures. If the name of a predicate procedure returns true for its argument, it's a datatype that will be converted to SXML by the matching conversion procedure.

Defaults to:

`((i4 . ,xml-rpc-int->number)
  (int . ,xml-rpc-int->number)
  (double . ,xml-rpc-double->number)
  (boolean . ,xml-rpc-boolean->number)
  (string . ,xml-rpc-string->string)
  (base64 . ,xml-rpc-base64->u8vector)
  (dateTime.iso8601 . ,xml-rpc-datetime->vector)
  (array . ,xml-rpc-array->vector)
  (struct . ,xml-rpc-struct->hash-table))

The SXML arguments to these conversion procedures is the element inside the value element. In other words, the element name (or car)of its SXML argument is equal to its key in this alist.

Important note: Due to unspecified details of POSIX strptime, you should never rely on proper values in the day-of-year or day-of-week slots for datetime values returned by xml-rpc. This is because XML-RPC internally uses regular ISO8601 format where these fields are not present. Some C libraries derive this information from the other fields (which is possible and can be done correctly), but others do not.