XML-RPC數據模型

XML-RPC規範定義了六種基本數據類型和兩種表示類型組合的複合數據類型。

XML-RPC中的基本數據類型,如下表中所示 -

類型

示例

inti4

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>

這樣就可以實現幾乎所有編程語言支持的數據類型。