XML-RPC - Modello di dati

La specifica XML-RPC definisce sei tipi di dati di base e due tipi di dati composti che rappresentano combinazioni di tipi.

Tipi di dati di base in XML-RPC

genere Valore Esempi
int o i4 Intero a 32 bit compreso tra - 2.147.483.648 e 2.147.483.647.

<int> 27 </int>

<i4> 27 </i4>

Doppio Numeri in virgola mobile a 64 bit

<double> 27.31415 </double>

<double> -1,1465 </double>

Booleano vero (1) o falso (0)

<boolean> 1 </boolean>

<boolean> 0 </boolean>

corda Testo ASCII, sebbene molte implementazioni supportino Unicode

<string> Ciao </string>

<string> pazzi! @ </string>

dateTime.iso8601 Date in formato ISO8601: CCYYMMDDTHH: MM: SS

<dateTime.iso8601>

20021125T02: 20: 04

</dateTime.iso8601>

<dateTime.iso8601>

20020104T17: 27: 30

</dateTime.iso8601>

base64 Informazioni binarie codificate come Base 64, come definito in RFC 2045

<base64> SGVsbG8sIFdvcmxkIQ == </base64>

Questi tipi di base sono sempre racchiusi in elementi di valore . Le stringhe (e solo le stringhe) possono essere racchiuse in un elemento valore ma omettono l' elemento stringa . Questi tipi di base possono essere combinati in due tipi, array e strutture più complessi. Gli array rappresentano informazioni sequenziali, mentre gli struct rappresentano coppie nome-valore, in modo molto simile agli hashtable, agli array associativi o alle proprietà.

Gli array sono indicati dall'elemento array , che contiene un elemento dati che contiene l'elenco di valori. Come altri tipi di dati, l' elemento array deve essere racchiuso in un elemento value . Ad esempio, il seguente array contiene quattro stringhe:

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

Il seguente array contiene quattro numeri interi:

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

Gli array possono contenere anche miscele di diversi tipi, come mostrato di seguito:

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

La creazione di array multidimensionali è semplice: basta aggiungere un array all'interno di un array:

<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 struttura semplice potrebbe essere simile a:

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

In questo modo puoi implementare quasi tutti i tipi di dati supportati da qualsiasi linguaggio di programmazione.