241:. The practical difference is just that XML-RPC is much more structured, which means common library code can be used to implement clients and servers and there is less design and documentation work for a specific application protocol. One salient technical difference between typical RESTful protocols and XML-RPC is that many RESTful protocols use the HTTP URI for parameter information, whereas with XML-RPC, the URI just identifies the server.
28:
741:
Recent critics (from 2010 and onwards) of XML-RPC argue that RPC calls can be made with plain XML, and that XML-RPC does not add any value over XML. Both XML-RPC and XML require an application-level data model, such as which field names are defined in the XML schema or the parameter names in XML-RPC.
216:
In XML-RPC, a client performs an RPC by sending an HTTP request to a server that implements XML-RPC and receives the HTTP response. A call can have multiple parameters and one result. The protocol defines a few data types for the parameters and result. Some of these data types are complex, i.e.
163:, with Microsoft seeing the protocol as an essential part of scaling up its efforts in business-to-business e-commerce. As new functionality was introduced, the standard evolved into what is now
173:
XML-RPC's idea of a human-readable-and-writable, script-parsable standard for HTTP-based requests and responses has also been implemented in competing specifications such as
Allaire's
200:(RPC) was patented by Phillip Merrick, Stewart Allen, and Joseph Lapp in April 2006, claiming benefit to a provisional application filed in March 1998. The patent was assigned to
1017:
186:
986:
924:
779:
742:
Furthermore, XML-RPC uses about 4 times the number of bytes compared to plain XML to encode the same objects, which is itself verbose compared to
1123:
893:
859:
19:
Not to be confused with the use of XML for RPC, independently of the specific protocol. This article is about the protocol named "XML-RPC".
955:
111:
1186:
49:
1048:
1100:
220:
The parameters/result structure and the set of data types are meant to mirror those used in common programming languages.
190:
1171:
572:
1181:
227:
92:
64:
170:
UserLand supported XML-RPC from version 5.1 of its
Frontier web content management system, released in June 1998.
38:
178:
71:
45:
1025:
132:
994:
182:
932:
193:
objects in XML syntax and transporting them via HTTP also existed in DataChannel's WebBroker technology.
78:
1176:
197:
128:
1127:
901:
774:
318:
867:
60:
769:
837:
549:
366:
205:
156:
415:
226:
of clients for authorization purposes can be achieved using popular HTTP security methods.
164:
963:
1078:
1165:
1018:"DataChannel's Dave Pool talks about shaping the role of XML to suit different needs"
568:
85:
833:
217:
nested. For example, you can have a parameter that is an array of five integers.
1052:
794:
755:
27:
1074:
201:
152:
160:
259:
are converted into their XML equivalents with example values shown below:
789:
762:
391:
256:
244:
454:
342:
799:
784:
743:
174:
140:
486:
136:
21:
956:"Exploring XML-RPC: DCOM? CORBA? RMI? Why Not Just XML-RPC?"
1101:"An open poll on the merits of XmlRpc versus alternatives"
818:
Simon St. Laurent, Joe
Johnston, Edd Dumbill. (June 2001)
1154:
925:"UserLand releases Frontier 5.1, drops freeware model"
237:(documents) are transferred, XML-RPC is designed to
627:An example of a typical XML-RPC response would be:
230:can be used for identification and authentication.
52:. Unsourced material may be challenged and removed.
585:An example of a typical XML-RPC request would be:
1075:"What is the benefit of XML-RPC over plain XML?"
1016:Vizard, Michael; Walsh, Jeff (29 June 1998).
8:
987:"W3C gives a nod to DataChannel's WebBroker"
887:
885:
151:The XML-RPC protocol was created in 1998 by
993:. Vol. 20, no. 21. Archived from
233:In comparison to RESTful protocols, where
112:Learn how and when to remove this message
780:Comparison of data serialization formats
261:
208:. The patent expired on March 23, 2019.
811:
1047:Merrick; et al. (11 April 2006).
820:Programming Web Services with XML-RPC.
667:<?xml version="1.0"?>
632:<?xml version="1.0"?>
590:<?xml version="1.0"?>
7:
1103:. intertwingly.net. 22 November 2006
894:"Microsoft spearheads protocol push"
50:adding citations to reliable sources
858:Rupley, Sebastian (30 June 1999).
662:A typical XML-RPC fault would be:
485:String of characters. Must follow
14:
179:Web Interface Definition Language
1124:"If you have REST, why XML-RPC?"
26:
1126:. joncanady.com. Archived from
37:needs additional citations for
1122:Jon Canady (14 January 2010).
1:
716:</string></value>
648:</string></value>
299:</string></value>
175:Web Distributed Data Exchange
923:Walsh, Jeff (29 June 1998).
892:Walsh, Jeff (10 July 1999).
334:eW91IGNhbid0IHJlYWQgdGhpcyE=
985:Walsh, Jeff (25 May 1998).
712:<value><string>
644:<value><string>
321:of values, storing no keys
295:<value><string>
228:Basic access authentication
196:The generic use of XML for
181:(WIDL). Prior art wrapping
1203:
954:Udell, Jon (7 June 1999).
696:</int></value>
143:as a transport mechanism.
18:
834:"A Brief History of SOAP"
832:Box, Don (1 April 2001).
613:</i4></value>
537:</i4></value>
517:</i4></value>
384:</dateTime.iso8601>
306:</i4></value>
292:</i4></value>
16:Data serialization format
822:O'Reilly. First Edition.
692:<value><int>
664:
629:
587:
569:Discriminated null value
559:
497:
478:
464:
440:
426:
402:
380:<dateTime.iso8601>
377:
353:
329:
279:
235:resource representations
139:to encode its calls and
731:</methodResponse>
657:</methodResponse>
609:<value><i4>
533:<value><i4>
513:<value><i4>
369:logical value (0 or 1)
302:<value><i4>
288:<value><i4>
247:is similar to XML-RPC.
177:(WDDX) and webMethod's
775:Component technologies
670:<methodResponse>
635:<methodResponse>
418:floating point number
1187:Remote procedure call
1049:"US Patent 7,028,312"
598:examples.getStateName
345:-encoded binary data
198:remote procedure call
129:remote procedure call
1028:on 16 September 1999
997:on 10 September 1999
935:on 15 September 1999
904:on 14 September 1999
46:improve this article
1172:XML-based standards
622:</methodCall>
600:</methodName>
1182:Internet protocols
1081:. 9 September 2009
1055:on 3 December 2011
770:Ajax (programming)
714:Toomanyparameters.
596:<methodName>
593:<methodCall>
382:19980717T14:08:55Z
860:"XML's Next Step"
578:
577:
550:Associative array
390:Date and time in
206:Fairfax, Virginia
157:UserLand Software
122:
121:
114:
96:
1194:
1158:
1157:
1155:Official website
1140:
1139:
1137:
1135:
1119:
1113:
1112:
1110:
1108:
1097:
1091:
1090:
1088:
1086:
1071:
1065:
1064:
1062:
1060:
1051:. Archived from
1044:
1038:
1037:
1035:
1033:
1024:. Archived from
1013:
1007:
1006:
1004:
1002:
982:
976:
975:
973:
971:
962:. Archived from
951:
945:
944:
942:
940:
931:. Archived from
920:
914:
913:
911:
909:
900:. Archived from
889:
880:
879:
877:
875:
866:. Archived from
855:
849:
848:
846:
844:
829:
823:
816:
732:
729:
726:
723:
720:
717:
713:
710:
706:
703:
700:
697:
693:
690:
686:
683:
680:
677:
674:
671:
668:
658:
655:
652:
649:
645:
642:
639:
636:
633:
623:
620:
617:
614:
610:
607:
604:
601:
597:
594:
591:
563:
544:
541:
538:
534:
531:
527:
524:
521:
518:
514:
511:
507:
504:
501:
472:
468:
448:
444:
434:
430:
416:Double precision
410:
406:
385:
381:
361:
360:</boolean>
357:
337:
333:
313:
310:
307:
303:
300:
296:
293:
289:
286:
283:
262:
117:
110:
106:
103:
97:
95:
54:
30:
22:
1202:
1201:
1197:
1196:
1195:
1193:
1192:
1191:
1162:
1161:
1153:
1152:
1149:
1144:
1143:
1133:
1131:
1121:
1120:
1116:
1106:
1104:
1099:
1098:
1094:
1084:
1082:
1073:
1072:
1068:
1058:
1056:
1046:
1045:
1041:
1031:
1029:
1015:
1014:
1010:
1000:
998:
984:
983:
979:
969:
967:
966:on 4 March 2000
953:
952:
948:
938:
936:
922:
921:
917:
907:
905:
891:
890:
883:
873:
871:
870:on 4 March 2000
857:
856:
852:
842:
840:
831:
830:
826:
817:
813:
808:
752:
739:
734:
733:
730:
727:
724:
722:</struct>
721:
719:</member>
718:
715:
711:
708:
704:
701:
699:</member>
698:
695:
691:
688:
684:
681:
678:
675:
672:
669:
666:
660:
659:
656:
654:</params>
653:
650:
647:
643:
640:
637:
634:
631:
625:
624:
621:
619:</params>
618:
615:
612:
608:
605:
602:
599:
595:
592:
589:
583:
565:
564:
561:
546:
545:
543:</struct>
542:
540:</member>
539:
536:
532:
529:
525:
522:
520:</member>
519:
516:
512:
509:
505:
502:
499:
482:
481:
474:
473:
471:</string>
470:
466:
450:
449:
446:
442:
436:
435:
432:
428:
412:
411:
409:</double>
408:
404:
387:
386:
383:
379:
363:
362:
359:
356:<boolean>
355:
339:
338:
336:</base64>
335:
331:
315:
314:
311:
308:
305:
301:
298:
294:
291:
287:
284:
281:
253:
214:
149:
118:
107:
101:
98:
55:
53:
43:
31:
20:
17:
12:
11:
5:
1200:
1198:
1190:
1189:
1184:
1179:
1174:
1164:
1163:
1160:
1159:
1148:
1147:External links
1145:
1142:
1141:
1130:on 11 May 2013
1114:
1092:
1079:Stack Overflow
1066:
1039:
1008:
977:
946:
915:
881:
850:
824:
810:
809:
807:
804:
803:
802:
797:
792:
787:
782:
777:
772:
766:
765:
759:
758:
751:
748:
738:
735:
728:</fault>
725:</value>
702:<member>
682:<member>
679:<struct>
665:
651:</param>
638:<params>
630:
616:</param>
603:<params>
588:
582:
579:
576:
575:
566:
560:
557:
553:
552:
547:
523:<member>
503:<member>
500:<struct>
498:
495:
491:
490:
483:
479:
467:<string>
465:
462:
458:
457:
453:Whole number,
451:
441:
427:
424:
420:
419:
413:
405:<double>
403:
400:
396:
395:
388:
378:
375:
371:
370:
364:
354:
351:
347:
346:
340:
332:<base64>
330:
327:
323:
322:
316:
312:</array>
280:
277:
273:
272:
269:
266:
252:
249:
224:Identification
213:
210:
148:
145:
120:
119:
34:
32:
25:
15:
13:
10:
9:
6:
4:
3:
2:
1199:
1188:
1185:
1183:
1180:
1178:
1175:
1173:
1170:
1169:
1167:
1156:
1151:
1150:
1146:
1129:
1125:
1118:
1115:
1102:
1096:
1093:
1080:
1076:
1070:
1067:
1054:
1050:
1043:
1040:
1027:
1023:
1019:
1012:
1009:
996:
992:
988:
981:
978:
965:
961:
957:
950:
947:
934:
930:
926:
919:
916:
903:
899:
895:
888:
886:
882:
869:
865:
861:
854:
851:
839:
835:
828:
825:
821:
815:
812:
805:
801:
798:
796:
793:
791:
788:
786:
783:
781:
778:
776:
773:
771:
768:
767:
764:
761:
760:
757:
754:
753:
749:
747:
745:
736:
709:</name>
689:</name>
676:<value>
673:<fault>
663:
641:<param>
628:
606:<param>
586:
580:
574:
571:; an XML-RPC
570:
567:
558:
555:
554:
551:
548:
530:</name>
510:</name>
496:
493:
492:
488:
484:
477:
463:
460:
459:
456:
452:
439:
425:
422:
421:
417:
414:
401:
398:
397:
393:
389:
376:
373:
372:
368:
365:
352:
349:
348:
344:
341:
328:
325:
324:
320:
317:
309:</data>
297:Somethinghere
282:<array>
278:
275:
274:
270:
267:
264:
263:
260:
258:
250:
248:
246:
242:
240:
236:
231:
229:
225:
221:
218:
211:
209:
207:
204:, located in
203:
199:
194:
192:
188:
184:
180:
176:
171:
168:
166:
162:
158:
154:
146:
144:
142:
138:
134:
130:
126:
116:
113:
105:
94:
91:
87:
84:
80:
77:
73:
70:
66:
63: –
62:
58:
57:Find sources:
51:
47:
41:
40:
35:This article
33:
29:
24:
23:
1177:Web services
1132:. Retrieved
1128:the original
1117:
1105:. Retrieved
1095:
1083:. Retrieved
1069:
1059:18 September
1057:. Retrieved
1053:the original
1042:
1030:. Retrieved
1026:the original
1021:
1011:
999:. Retrieved
995:the original
990:
980:
968:. Retrieved
964:the original
959:
949:
937:. Retrieved
933:the original
928:
918:
906:. Retrieved
902:the original
897:
872:. Retrieved
868:the original
863:
853:
841:. Retrieved
827:
819:
814:
740:
705:<name>
685:<name>
661:
626:
584:
562:<nil/>
526:<name>
506:<name>
487:XML encoding
480:Helloworld!
475:
437:
433:</int>
285:<data>
271:Description
268:Tag Example
254:
243:
239:call methods
238:
234:
232:
223:
222:
219:
215:
195:
172:
169:
150:
124:
123:
108:
102:October 2016
99:
89:
82:
75:
68:
56:
44:Please help
39:verification
36:
1001:17 November
970:17 November
939:17 November
908:17 November
874:17 November
864:PC Magazine
795:Web service
756:Weblogs.com
707:faultString
646:SouthDakota
469:Helloworld!
447:</i4>
429:<int>
135:which uses
1166:Categories
1032:8 December
843:27 October
806:References
443:<i4>
374:date/time
251:Data types
202:webMethods
153:Dave Winer
72:newspapers
1022:Infoworld
991:Infoworld
929:InfoWorld
898:Infoworld
737:Criticism
687:faultCode
573:extension
257:datatypes
161:Microsoft
61:"XML-RPC"
838:O'Reilly
790:JSON-RPC
763:Pingback
750:See also
581:Examples
423:integer
392:ISO 8601
350:boolean
245:JSON-RPC
191:Java RMI
133:protocol
1134:7 April
1107:7 April
1085:7 April
494:struct
461:string
455:integer
399:double
394:format
367:Boolean
326:base64
255:Common
147:History
125:XML-RPC
86:scholar
407:-12.53
343:Base64
276:array
189:, and
131:(RPC)
88:
81:
74:
67:
59:
319:Array
265:Name
212:Usage
187:CORBA
127:is a
93:JSTOR
79:books
1136:2011
1109:2011
1087:2011
1061:2008
1034:2015
1003:2015
972:2015
960:Byte
941:2015
910:2015
876:2015
845:2010
800:gRPC
785:OPML
744:JSON
556:nil
290:1404
165:SOAP
159:and
141:HTTP
65:news
528:bar
508:foo
476:or
438:or
183:COM
155:of
137:XML
48:by
1168::
1077:.
1020:.
989:.
958:.
927:.
896:.
884:^
862:.
836:.
746:.
611:40
489:.
445:42
431:42
185:,
167:.
1138:.
1111:.
1089:.
1063:.
1036:.
1005:.
974:.
943:.
912:.
878:.
847:.
694:4
535:2
515:1
358:1
304:1
115:)
109:(
104:)
100:(
90:·
83:·
76:·
69:·
42:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.