XML-RPC - model danych

Specyfikacja XML-RPC definiuje sześć podstawowych typów danych i dwa złożone typy danych, które reprezentują kombinacje typów.

Podstawowe typy danych w XML-RPC

Rodzaj Wartość Przykłady
int lub i4 32-bitowe liczby całkowite od - 2,147 483648 do 2 147 483 647.

<int> 27 </int>

<i4> 27 </i4>

podwójnie 64-bitowe liczby zmiennoprzecinkowe

<double> 27.31415 </double>

<double> -1,1465 </double>

Boolean prawda (1) lub fałsz (0)

<boolean> 1 </boolean>

<boolean> 0 </boolean>

strunowy Tekst ASCII, chociaż wiele implementacji obsługuje Unicode

<string> Witaj </string>

<string> zwariowany! @ </string>

dateTime.iso8601 Daty w formacie ISO8601: CCRRMMDDTHH: MM: SS

<dateTime.iso8601>

20021125T02: 20: 04

</dateTime.iso8601>

<dateTime.iso8601>

20020104T17: 27: 30

</dateTime.iso8601>

base64 Informacje binarne zakodowane jako Base 64, zgodnie z definicją w RFC 2045

<base64> SGVsbG8sIFdvcmxkIQ == </base64>

Te podstawowe typy są zawsze zawarte w elementach wartości . Łańcuchy (i tylko łańcuchy) mogą być zawarte w elemencie wartości , ale pomijać element string . Te podstawowe typy można łączyć w dwa bardziej złożone typy, tablice i struktury. Tablice reprezentują informacje sekwencyjne, podczas gdy struktury reprezentują pary nazwa-wartość, podobnie jak tabele skrótów, tablice asocjacyjne lub właściwości.

Tablice są wskazywane przez element tablicy , który zawiera element danych zawierający listę wartości. Podobnie jak inne typy danych, element tablicy musi być ujęty w element wartości . Na przykład poniższa tablica zawiera cztery ciągi:

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

Poniższa tablica zawiera cztery liczby całkowite:

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

Tablice mogą również zawierać mieszanki różnych typów, jak pokazano tutaj:

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

Tworzenie wielowymiarowych tablic jest proste - wystarczy dodać tablicę wewnątrz tablicy:

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

Prosta struktura może wyglądać następująco:

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

W ten sposób możesz zaimplementować prawie wszystkie typy danych obsługiwane przez dowolny język programowania.