Спецификация XML-RPC определяет шесть основных типов данных и два составных типа данных, которые представляют комбинации типов.
Основные типы данных в XML-RPC
Тип | Значение | Примеры |
---|---|---|
int или i4 | 32-разрядные целые числа от — 2 147 483 648 до 2 147 483 647. |
<Int> 27 </ Int> <I4> 27 </ i4> |
двойной | 64-битные числа с плавающей точкой |
<Двойной> 27,31415 </ двойной> <Двойной> -1,1465 </ двойной> |
логический | true (1) или false (0) |
<Логическое значение> 1 </ булево> <Логическое> 0 </ булево> |
строка | Текст ASCII, хотя многие реализации поддерживают Unicode |
<Строка> Hello </ строка> <Строка> помешанные! @ </ Строка> |
dateTime.iso8601 | Даты в формате ISO8601: 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> |
<Int> 27 </ Int>
<I4> 27 </ i4>
<Двойной> 27,31415 </ двойной>
<Двойной> -1,1465 </ двойной>
<Логическое значение> 1 </ булево>
<Логическое> 0 </ булево>
<Строка> Hello </ строка>
<Строка> помешанные! @ </ Строка>
<DateTime.iso8601>
20021125T02: 20: 04
</DateTime.iso8601>
<DateTime.iso8601>
20020104T17: 27: 30
</DateTime.iso8601>
<Base64> SGVsbG8sIFdvcmxkIQ == </ base64>
Эти базовые типы всегда заключены в элементы значения . Строки (и только строки) могут быть заключены в элемент значения, но пропустить элемент строки . Эти основные типы могут быть объединены в два более сложных типа, массивы и структуры. Массивы представляют последовательную информацию, в то время как структуры представляют пары имя-значение, во многом как хеш-таблицы, ассоциативные массивы или свойства.
Массивы обозначаются элементом массива , который содержит элемент данных, содержащий список значений. Как и другие типы данных, элемент массива должен быть заключен в элемент значения . Например, следующий массив содержит четыре строки:
<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>
Таким образом, вы можете реализовать практически все типы данных, поддерживаемые любым языком программирования.