XML-RPC: modelo de datos

La especificación XML-RPC define seis tipos de datos básicos y dos tipos de datos compuestos que representan combinaciones de tipos.

Tipos de datos básicos en XML-RPC

Tipo Valor Ejemplos
int o i4 Enteros de 32 bits entre - 2,147,483,648 y 2,147,483,647.

<int> 27 </int>

<i4> 27 </i4>

doble Números de coma flotante de 64 bits

<double> 27.31415 </double>

<double> -1.1465 </double>

Booleano verdadero (1) o falso (0)

<boolean> 1 </boolean>

<boolean> 0 </boolean>

cuerda Texto ASCII, aunque muchas implementaciones admiten Unicode

<string> Hola </string>

<string> ¡locos! @ </string>

dateTime.iso8601 Fechas en formato ISO8601: CCYYMMDDTHH: MM: SS

<dateTime.iso8601>

20021125T02: 20: 04

</dateTime.iso8601>

<dateTime.iso8601>

20020104T17: 27: 30

</dateTime.iso8601>

base64 Información binaria codificada como Base 64, como se define en RFC 2045

<base64> SGVsbG8sIFdvcmxkIQ == </base64>

Estos tipos básicos siempre se incluyen en elementos de valor . Las cadenas (y solo las cadenas) pueden incluirse en un elemento de valor , pero omiten el elemento de cadena . Estos tipos básicos se pueden combinar en dos tipos, matrices y estructuras más complejos. Las matrices representan información secuencial, mientras que las estructuras representan pares nombre-valor, al igual que tablas hash, matrices asociativas o propiedades.

Las matrices se indican mediante el elemento de matriz , que contiene un elemento de datos que contiene la lista de valores. Al igual que otros tipos de datos, el elemento de matriz debe incluirse en un elemento de valor . Por ejemplo, la siguiente matriz contiene cuatro cadenas:

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

La siguiente matriz contiene cuatro números enteros:

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

Las matrices también pueden contener mezclas de diferentes tipos, como se muestra aquí:

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

Crear matrices multidimensionales es simple: simplemente agregue una matriz dentro de una matriz:

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

Una estructura simple podría verse así:

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

De esta forma, puede implementar casi todos los tipos de datos compatibles con cualquier lenguaje de programación.