Invoke an XML-RPC server at a remote URI (Requires Python 2.2 or above)
There are 5 attributes, p1, p2... which are used for the positional
arguments to the remote method [this will be made less kludgy soon]
Each one is an expression which follows the following conversion rules
from the XPath data model:
string -> string
number -> floating-point number
boolean -> boolean
node set -> array of strings
You can also coerce the value to a certain type by using an attribute
of the form t1, t2,... corresponding to the pN attribute with one of the
following string values:
INT
DOUBLE
STRING
BOOLEAN
The return value is converted into an XML fragment representation,
which is sent to output.
string -> <String>[value]</String>
floating-point number -> <Double>[value]</Double>
boolean -> boolean <Boolean>["true" or "false"]</Boolean>
array -> <Array>[sequence of child elements as above, according to array elements]</Array>
An example of an array:
<Array>
<String>a string</String>
<Float>123.4</Float>
<Int>1234</Int>
<String>another string</String>
</Array>
This means that in order to access a remote method
obj.spam('eggs', 3)
On a remote server at
http://spam.com/xmlrpcserver
And save the result of XSLT variable "monty",
you can use the following XSLT snippet:
<xsl:variable name="monty">
<futil:xml-rpc-invoke uri="http://spam.com/xmlrpcserver"
method="obj.spam"
p1="'eggs'"
p2="3" t2="INT"/>
</xsl:variable>
No type coercion is used for p1 because XSLT string are generally
unambiguous in converting to XML-RPC. However, the second param
could be integer or double, so it is coerced (default is double).
Beware that if an array is returned, you might need to use
the exslt:node-set function to convert from result tree fragment
to node set.
Methods
Fields
content = <Ft.Xml.Xslt.ContentInfo.Atom instance>
Empty is the content model for childless elements
legalAttrs = {'method': <Ft.Xml.Xslt.AttributeInfo.StringAvt instance>, 'p1': <Ft.Xml.Xslt.AttributeInfo.Expression instance>, 'p2': <Ft.Xml.Xslt.AttributeInfo.Expression instance>, 'p3': <Ft.Xml.Xslt.AttributeInfo.Expression instance>, 'p4': <Ft.Xml.Xslt.AttributeInfo.Expression instance>, 'p5': <Ft.Xml.Xslt.AttributeInfo.Expression instance>, 't1': <Ft.Xml.Xslt.AttributeInfo.Expression instance>, 't2': <Ft.Xml.Xslt.AttributeInfo.Expression instance>, 't3': <Ft.Xml.Xslt.AttributeInfo.Expression instance>, 't4': <Ft.Xml.Xslt.AttributeInfo.Expression instance>, ...}
Fields
Fields