XML-RPC - Mô hình dữ liệu
Đặc tả XML-RPC xác định sáu kiểu dữ liệu cơ bản và hai kiểu dữ liệu kết hợp biểu thị sự kết hợp của các kiểu.
Các kiểu dữ liệu cơ bản trong XML-RPC
Kiểu | Giá trị | Ví dụ |
---|---|---|
int hoặc i4 | Các số nguyên 32 bit giữa - 2.147.483.648 và 2.147.483.647. | <int> 27 </int> <i4> 27 </i4> |
gấp đôi | Số dấu phẩy động 64 bit | <double> 27.31415 </double> <double> -1.1465 </double> |
Boolean | true (1) hoặc false (0) | <boolean> 1 </boolean> <boolean> 0 </boolean> |
chuỗi | Văn bản ASCII, mặc dù nhiều triển khai hỗ trợ Unicode | <string> Xin chào </string> <string> bonkers! @ </string> |
dateTime.iso8601 | Ngày ở định dạng ISO8601: CCYYMMDDTHH: MM: SS | <dateTime.iso8601> 20021125T02: 20: 04 </dateTime.iso8601> <dateTime.iso8601> 20020104T17: 27: 30 </dateTime.iso8601> |
base64 | Thông tin nhị phân được mã hóa dưới dạng Cơ sở 64, như được định nghĩa trong RFC 2045 | <base64> SGVsbG8sIFdvcmxkIQ == </base64> |
Các kiểu cơ bản này luôn được bao bọc trong các phần tử giá trị . Chuỗi (và chỉ chuỗi) có thể được bao trong một phần tử giá trị nhưng bỏ qua phần tử chuỗi . Những kiểu cơ bản này có thể được kết hợp thành hai kiểu phức tạp hơn, mảng và cấu trúc. Mảng đại diện cho thông tin tuần tự, trong khi cấu trúc đại diện cho các cặp tên-giá trị, giống như các dấu thăng, mảng kết hợp hoặc thuộc tính.
Mảng được biểu thị bởi phần tử mảng , phần tử này chứa một phần tử dữ liệu chứa danh sách các giá trị. Giống như các kiểu dữ liệu khác, phần tử mảng phải được bao trong một phần tử giá trị . Ví dụ, mảng sau chứa bốn chuỗi:
<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>
Mảng sau chứa bốn số nguyên:
<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>
Mảng cũng có thể chứa hỗn hợp các loại khác nhau, như được hiển thị ở đây:
<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>
Tạo mảng nhiều chiều rất đơn giản - chỉ cần thêm một mảng bên trong một mảng:
<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>
Một cấu trúc đơn giản có thể giống như sau:
<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>
Bằng cách này, bạn có thể triển khai hầu hết các kiểu dữ liệu được hỗ trợ bởi bất kỳ ngôn ngữ lập trình nào.