XML-RPC - Modèle de données

La spécification XML-RPC définit six types de données de base et deux types de données composés qui représentent des combinaisons de types.

Types de données de base dans XML-RPC

Type Valeur Exemples
int ou i4 Entiers 32 bits compris entre - 2 147 483 648 et 2 147 483 647.

<int> 27 </int>

<i4> 27 </i4>

double Nombres à virgule flottante 64 bits

<double> 27.31415 </double>

<double> -1,1465 </double>

Booléen vrai (1) ou faux (0)

<boolean> 1 </boolean>

<boolean> 0 </boolean>

chaîne Texte ASCII, bien que de nombreuses implémentations prennent en charge Unicode

<string> Bonjour </string>

<string> dingue! @ </string>

dateTime.iso8601 Dates au format ISO8601: CCAAMMJJTHH: MM: SS

<dateTime.iso8601>

20021125T02: 20: 04

</dateTime.iso8601>

<dateTime.iso8601>

20020104T17: 27: 30

</dateTime.iso8601>

base64 Informations binaires codées en Base 64, telles que définies dans la RFC 2045

<base64> SGVsbG8sIFdvcmxkIQ == </base64>

Ces types de base sont toujours inclus dans des éléments de valeur . Les chaînes (et uniquement les chaînes) peuvent être incluses dans un élément de valeur mais omettre l' élément de chaîne . Ces types de base peuvent être combinés en deux types, tableaux et structures plus complexes. Les tableaux représentent des informations séquentielles, tandis que les structures représentent des paires nom-valeur, tout comme les tables de hachage, les tableaux associatifs ou les propriétés.

Les tableaux sont indiqués par l' élément de tableau , qui contient un élément de données contenant la liste des valeurs. Comme les autres types de données, l' élément de tableau doit être inclus dans un élément de valeur . Par exemple, le tableau suivant contient quatre chaînes:

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

Le tableau suivant contient quatre entiers:

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

Les tableaux peuvent également contenir des mélanges de différents types, comme illustré ici:

<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 création de tableaux multidimensionnels est simple - ajoutez simplement un tableau à l'intérieur d'un tableau:

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

Une structure simple pourrait ressembler à:

<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 cette façon, vous pouvez implémenter presque tous les types de données pris en charge par n'importe quel langage de programmation.