11.20.1 ServerProxy Objects
A ServerProxy instance has a method corresponding to each remote
procedure call accepted by the XML-RPC server. Calling the method performs an RPC, dispatched
by both name and argument signature (e.g. the same method name can be overloaded with multiple
argument signatures). The RPC finishes by returning a value, which may be either returned data
in a conformant type or a Fault or ProtocolError
object indicating an error.
Servers that support the XML introspection API support some common methods grouped under
the reserved system member:
- This method returns a list of strings, one for each (non-system) method supported by the
- This method takes one parameter, the name of a method implemented by the XML-RPC
server.It returns an array of possible signatures for this method. A signature is an array
of types. The first of these types is the return type of the method, the rest are
Because multiple signatures (ie. overloading) is permitted, this method returns a list
of signatures rather than a singleton.
Signatures themselves are restricted to the top level parameters expected by a method.
For instance if a method expects one array of structs as a parameter, and it returns a
string, its signature is simply "string, array". If it expects three integers
and returns a string, its signature is "string, int, int, int".
If no signature is defined for the method, a non-array value is returned. In Python
this means that the type of the returned value will be something other that list.
- This method takes one parameter, the name of a method implemented by the XML-RPC server.
It returns a documentation string describing the use of that method. If no such string is
available, an empty string is returned. The documentation string may contain HTML markup.
Introspection methods are currently supported by servers written in PHP, C and Microsoft
.NET. Partial introspection support is included in recent updates to UserLand Frontier.
Introspection support for Perl, Python and Java is available at the XML-RPC Hacks page.