XML-RPC - 数据模型

XML-RPC规范定义了六种基本数据类型和两种表示类型组合的复合数据类型.

XML-RPC中的基本数据类型

TypeValue示例
int或i432 -  2,147,483,648和2,147,483,647之间的位整数.

< int> 27</int>

< i4> ; 27</i4>

double64位浮点数

< double> 27.31415</double>

< double> -1.1465</double>

Booleantrue(1)或false(0)

< boolean> 1</boolean>

< boolean> 0</boolean>

stringASCII文本,尽管很多实现ns支持Unicode

< string> Hello</string>

< string> bonkers! @</string>

dateTime.iso8601ISO8601格式的日期: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>

通过这种方式,您可以实现几乎所有编程语言支持的数据类型.