Knowledge (XXG)

XML-RPC

Source 📝

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:.

Index


verification
improve this article
adding citations to reliable sources
"XML-RPC"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
remote procedure call
protocol
XML
HTTP
Dave Winer
UserLand Software
Microsoft
SOAP
Web Distributed Data Exchange
Web Interface Definition Language
COM
CORBA
Java RMI
remote procedure call
webMethods
Fairfax, Virginia
Basic access authentication
JSON-RPC
datatypes

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.