XML-RPC
보이기
XML-RPC란, RPC 프로토콜의 일종으로서, 인코딩 형식에서는 XML을 채택하고, 전송 방식에서는 HTTP 프로토콜을 사용하고 있다. XML-RPC는 매우 단순한 규약으로서, 작은 데이터 형식이나 명령을 정의하는 정도로만 사용하고 있으며, 사양서도 A4 2매 정도로 꽤나 단순한 편이다. 이건 대다수의 RPC 프로토콜 시스템이 수 많은 규격을 규정하고, 실제 사용할 때에도 엄청난 양의 코딩을 요구하는 것과 비교하면 눈에 띄는 특징이라고 할 수 있다.
이 프로토콜은 1998년 데이브 위너(Dave Winer)의 UserLand Software Ltd.가 Microsoft와 공동으로 개발하였다. 이후에 이 프로토콜에 좀 더 부가적인 기능을 추가한 SOAP 프로토콜이 개발되었으나, 보통 SOAP 보다 단순하고 사용하기 쉬운 XML-RPC를 더욱 많이 사용하고 있다.
유사한 RPC 계열 프로토콜로는 JSON-RPC 프로토콜이 존재한다.
데이터 형식
이름 | 사용 예 | 설명 |
---|---|---|
array |
<array> <value><i4>1404</i4></value> <value><string>Something here</string></value> <value><i4>1</i4></value> </array> |
값의 배열. 키는 포함하지 않음. |
base64 |
<base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64> |
Base64로 인코딩 된 바이너리 데이터 |
boolean |
<boolean>1</boolean> |
논리식 (0 또는 1) |
date/time |
<dateTime.iso8601>19980717T14:08:55</dateTime.iso8601> |
날짜와 시간 |
double |
<double>-12.53</double> |
배정수 부동 소수점 |
integer |
<i4>42</i4> or <int>42</int> |
정수 |
string |
<string>Hello world!</string> |
문자열. XML 파일의 인코딩 형식에 따름. |
struct |
<struct> <member> <name>foo</name> <value><i4>1</i4></value> </member> <member> <name>bar</name> <value><i4>2</i4></value> </member> </struct> |
키 값을 포함한 값의 배열. |
nil |
<nil/> |
NULL 식별용. XML-RPC 확장 |
사용 예
XML-RPC Call 형식의 예제
<?xml version="1.0"?> <methodCall> <methodName>examples.getStateName</methodName> <params> <param> <value><i4>40</i4></value> </param> </params> </methodCall>
XML-RPC Response 형식의 예제
<?xml version="1.0"?> <methodResponse> <params> <param> <value><string>South Dakota</string></value> </param> </params> </methodResponse>
XML-RPC Fault 형식의 예제
<?xml version="1.0"?> <methodResponse> <fault> <value> <struct> <member> <name>faultCode</name> <value><int>4</int></value> </member> <member> <name>faultString</name> <value><string>Too many parameters.</string></value> </member> </struct> </value> </fault> </methodResponse>
관련 항목
바깥 고리
- XML-RPC Homepage
- Forum
- Tutorials
- Technology Reports
- Citations from CiteSeer
- Jabber-RPC Jabber 프로토콜 상에서의 XML-RPC
- pyJabberXMLRPC: Python용 (Jabber 상에서의 XML-RPC)
- Secure Apache XML-RPC
- RemObjects SDK SOAP등을 위한 XML-RPC
- RealThinClient SDK: Delphi/C++용
- XML-RPC in Flash ActionScript 2.0
- XML-RPC.NET: .NET용
- Redstone XML-PRC Library Java용 오픈소스 라이브러리