XML-RPC規範定義了六種基本資料型別和兩種表示型別組合的複合資料型別。
XML-RPC中的基本資料型別,如下表中所示 -
型別 | 值 | 範例 |
---|---|---|
int 或i4 |
32位元整數 | <int>27</int> , <i4>27</i4> |
double |
64位元浮點數 | <double>27.31415</double> , <double>-1.1465</double> |
Boolean |
true (1) 或 false (0) |
<boolean>1</boolean> , <boolean>0</boolean> |
string |
ASCII文字,儘管許多實現支援Unicode | <string>Hello</string> , <string>bonkers! @</string> |
dateTime.iso8601 |
ISO8601格式的日期: CCYYMMDDTHH:MM:SS |
<dateTime.iso8601> 20021125T02:20:04 </dateTime.iso8601> |
base64 |
二進位制資訊編碼為Base 64 ,如RFC 2045中所定義 |
<base64>SGVsbG8sIFdvcmxkIQ==</base64> |
這些基本型別始終包含在值元素中。 字串(和僅字串)可以包含在值元素中,但省略字串元素。 這些基本型別可以組合成兩個更複雜的型別,陣列和結構。 陣列表示順序資訊,而結構表示名稱-值對,非常類似於雜湊表,關聯陣列或屬性。
陣列由陣列元素指示,陣列元素包含儲存值列表的資料元素。 與其他資料型別一樣,陣列元素必須包含在value
元素中。 例如,以下陣列包含四個字串:
<value>
<array>
<data>
<value><string>This </string></value>
<value><string>is </string></value>
<value><string>an </string></value>
<value><string>array.</string></value>
</data>
</array>
</value>
以下陣列包含四個整數:
<value>
<array>
<data>
<value><int>7</int></value>
<value><int>1207</int></value>
<value><int>-99</int></value>
<value><int>42</int></value>
</data>
</array>
</value>
陣列也可以包含不同型別的混合,如下所示:
<value>
<array>
<data>
<value><boolean>1</boolean></value>
<value><string>Array collection, eh?</string></value>
<value><int>-91</int></value>
<value><double>142.14325</double></value>
</data>
</array>
</value>
建立多維陣列很簡單 - 只需在陣列中新增一個陣列:
<value>
<array>
<data>
<value>
<array>
<data>
<value><int>10</int></value>
<value><int>20</int></value>
<value><int>30</int></value>
</data>
</array>
</value>
<value>
<array>
<data>
<value><int>15</int></value>
<value><int>25</int></value>
<value><int>35</int></value>
</data>
</array>
</value>
</data>
</array>
</value>
一個簡單的結構可能看起來像:
<value>
<struct>
<member>
<name>givenName</name>
<value><string>Max</string></value>
</member>
<member>
<name>familyName</name>
<value><string>Su</string></value>
</member>
<member>
<name>age</name>
<value><int>26</int></value>
</member>
</struct>
</value>
這樣就可以實現幾乎所有程式設計語言支援的資料型別。