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.