Représentation externe des données
# Représentation externe des données

eXternal Data Representation (XDR) est un standard IETF de la couche de présentation du modèle OSI. XDR permet d'encoder les données de manière indépendante de l'architecture, afin de pouvoir les transférer entre systèmes hétérogènes.

* La conversion de la représentation locale vers XDR est appelée encodage ou marshalling.
* La conversion inverse est appelée décodage ou unmarshalling

XDR est implémenté comme une bibliothèque portable entre différents systèmes d'exploitation, et est indépendant de la couche de transport.

Le format XDR est entre autres utilisé dans le protocole RPC, ainsi que par le logiciel R, pour sauvegarder les tables de données (fichiers .Rdata).

## Types de données XDR

XDR définit les principaux types de données suivants :

* int : entier (32 bits)
* unsigned int : entier non signé (32 bits)
* enum : énumération (entiers signés)
* bool : booléen
* hyper : entier étendu à 64 bits
* unsigned hyper : entier non signé étendu à 64 bits
* float : réel
* double : réel double précision
* quadruple : réel quadruple précision
* opaque : donnée opaque (longueur fixe ou variable)
* string : chaine de caractères
* void : pas de donnée (utile pour indiquer qu'une opération ne prend pas d'argument, ou ne renvoie aucun résultat)

XDR permet aussi de définir des tableaux de longueurs fixes ou variables, des unions, des structures, ...

Voir les références pour plus de détails sur la syntaxe et l'encodage des données.

