XML-RPC规范定义了六种基本数据类型和两种表示类型组合的复合数据类型.
Type | Value | 示例 |
---|---|---|
int或i4 | 32 - 2,147,483,648和2,147,483,647之间的位整数. | < 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文本,尽管很多实现ns支持Unicode | < string> Hello</string> < string> bonkers! @</string> |
dateTime.iso8601 | ISO8601格式的日期:CCYYMMDDTHH:MM:SS | < dateTime.iso8601> 20021125T02 :20:04 </dateTime.iso8601> < dateTime.iso8601> 20020104T17:27:30 </dateTime.iso8601> |
base64 | 编码为Base 64的二进制信息,如RFC 2045中所定义 | < ; base64> SGVsbG8sIFdvcmxkIQ ==</base64> |
这些基本类型是始终包含在 value 元素中.字符串(和仅字符串)可以包含在 value 元素中,但省略 string 元素.这些基本类型可以组合成两个更复杂的类型,数组和结构.数组表示顺序信息,而结构表示名称 - 值对,非常类似于哈希表,关联数组或属性.
数组由数组元素表示,包含保存值列表的 data 元素.与其他数据类型一样,数组元素必须包含在 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>1247</int></value> <value><int>-91</int></value> <value><int>42</int></value> </data> </array> </value>
数组也可以包含不同类型的混合,如下所示:
<value> <array> <data> <value><boolean>1</boolean></value> <value><string>Chaotic collection, eh?</string></value> <value><int>-91</int></value> <value><double>42.14159265</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>Joseph</string></value> </member> <member> <name>familyName</name> <value><string>DiNardo</string></value> </member> <member> <name>age</name> <value><int>27</int></value> </member> </struct> </value>
通过这种方式,您可以实现几乎所有编程语言支持的数据类型.