XML-RPC ( Remote Procedure Call ) er en ekstern prosedyreanropsprotokoll som bruker XML til å kode data og HTTP som meldingsoverføringsprotokoll. [ 1 ]
Det er en veldig enkel protokoll da den bare definerer noen få nyttige datatyper og kommandoer, pluss en kort fullstendig beskrivelse. Enkelheten til XML-RPC står i kontrast til de fleste RPC-protokoller som har omfattende dokumentasjon og krever betydelig programvarestøtte å bruke.
Den ble opprettet av Dave Winer fra UserLand Software-selskapet i samarbeid med Microsoft i 1998 . Tatt i betraktning at Microsoft var veldig enkelt, bestemte den seg for å legge til funksjonalitet til den, hvoretter standarden etter flere utviklingsstadier sluttet å være enkel og ble det som for tiden er kjent som SOAP . En grunnleggende forskjell er at i SOAP -prosedyrer har parameterne et navn og rekkefølgen deres spiller ingen rolle, noe som ikke er tilfellet i XML-RPC . [ 2 ]
I henhold til XML-RPC- spesifikasjonen [ 3 ] er hoveddatatypene :
Navn | Eksempelkoder | Beskrivelse |
---|---|---|
array | <array> <data> <value><i4> 1404 </i4></value> <value><string> Noe her </string></value> <value><i4> 1 </i4></ verdi> </data> </array> | En rekke verdier, uten å lagre nøkler |
base64 | <base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64> | Base 64-kodede binære data |
boolsk | <boolean> 1 </boolean> | Logisk verdi (0 eller 1) |
dato tid | <dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601> | Dag og time |
dobbelt | <double> -12,53 </double> | Dobbelt presisjons flytepunktnummer |
heltall |
<i4> 42 </i4>
enten <int> 42 </int> |
heltall |
streng | <string> Hei verden </string> | Streng (streng) med tegn. Den må følge XML -koding . |
struktur | <struct> <medlem> <name> foo </name> <value><i4> 1 </i4></value> </member> <medlem> <name> bar </name> <value><i4> 2 </i4></value> </member> </struct> | En rekke verdier, lagring av nøkler |
null | <null/> | null verdi; en XML-RPC-utvidelse |
Implementeringer finnes for ulike operativsystemer, programmeringsspråk, kommersielle og fri programvarelisenser: [ 4 ] C /C++ , Delphi , Frontier , Guile , Java , Lisp , Microsoft .NET , Perl , PHP , Python , Real Basic , Rebol , Tcl , WebObjects og Zope .
Noen kjente implementeringer er: