XML-RPC - 資料模型



XML-RPC 規範定義了六種基本資料型別和兩種複合資料型別,這些複合資料型別表示型別的組合。

XML-RPC 中的基本資料型別

型別 示例
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>

布林值 true (1) 或 false (0)

<boolean>1</boolean>

<boolean>0</boolean>

字串 ASCII 文字,儘管許多實現支援 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 根據 RFC 2045 定義,以 Base 64 編碼的二進位制資訊

<base64>SGVsbG8sIFdvcmxkIQ==</base64>

這些基本型別始終包含在value元素中。字串(且僅字串)可以包含在value元素中,但省略string元素。這些基本型別可以組合成兩種更復雜的型別,陣列和結構體。陣列表示順序資訊,而結構體表示名稱-值對,類似於雜湊表、關聯陣列或屬性。

陣列由array元素指示,該元素包含一個data元素,其中包含值的列表。與其他資料型別一樣,array元素必須包含在value元素中。例如,以下array包含四個字串

<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>

這樣,您可以實現任何程式語言支援的幾乎所有資料型別。

廣告