XML-RPC规范网站发布了这一规范的细节。本文不准备复述这些细节,而是探讨一些真实的请求和响应消息,如清单A所示,我们想通过实战来了解这个规范。
在例子中,要注意的第一件事情是xml中绝无任何属性,只使用了元素。所有请求消息都放在一个<methodCall>元素中,方法名放在一个子<methodName>元素中。类似地,所有响应消息都放在一个<methodResponse>元素中。
除此之外,还要注意<value>是在<param>元素内部传递的,值的类型可用数据类型元素<int>、<double>、<string>等等来指定。要传递更多的数据(比如希望参数数量可变,或者希望参数成为一个复合结构),那么从这个例子可以看出,xml-RPC也支持<array>和<struct>数据类型。
注意,xml-RPC不支持命名空间、多参与者(Multiple Actors)、将指令传递给不同的端点以及协议绑定。xml-RPC是一种从A点到B点的规范,只使用HTTP
POST这一递送机制来工作。每条请求消息只有一个方法调用,每条响应消息也只有一个返回值(可为数组或者用于发送多个值的结构)。
服务器和客户端是惟一的“参与者”,它们需要提前知道要做的事情。没有UDDI机制可供你了解自己还不知道的事情,也没有WSDL可供你描述自己还不理解的事情。
这会对你产生什么妨碍呢?可能并不多。你想用Web服务完成什么事情,其实大多数都可与你的客户以及其他商业伙伴清楚地加以定义。由于缺乏对元数据的考虑,所以xml-RPC不适合用于预测未来,但它至少能对你今天做的事情提供相当大的帮助。