Une norme canonique
L'approche XDR de la normalisation des représentations de données est canonique.
En d'autres termes, XDR définit des représentations pour un octet unique (bit de poids fort en premier), une représentation à virgule flottante unique (IEEE), etc. Tout programme exécuté sur n'importe quelle machine peut utiliser XDR pour créer des données portables en traduisant sa représentation locale vers les normes XDR. De même, tout programme exécuté sur n'importe quelle machine peut lire des données portables en traduisant les représentations standard XDR vers ses équivalents locaux. La norme canonique découple complètement les programmes qui créent ou envoient des données portables à partir de ceux qui utilisent ou reçoivent des données portables.
L'avènement d'une nouvelle machine ou d'un nouveau langage n'a aucun effet sur la communauté des créateurs et utilisateurs de données portables existants. Une nouvelle machine peut être programmée pour convertir à la fois les représentations standard et ses représentations locales, quelles que soient les représentations locales des autres machines. Inversement, les représentations locales de la nouvelle machine ne sont pas non plus pertinentes pour les programmes existants exécutés sur d'autres machines. Ces programmes existants peuvent immédiatement lire des données portables produites par la nouvelle machine, car ces données sont conformes aux normes canoniques.
De forts précédents existent pour l'approche canonique de XDR. Tous les protocoles situés sous la couche cinq du modèle ISO, y compris Transmission Control Protocol (TCP), Internet Protocol (IP), User Datagram Protocol (UDP) et Ethernet, sont des protocoles canoniques. L'avantage de toute approche canonique est la simplicité. XDR s'intègre dans la couche de présentation ISO et son objectif est globalement similaire à X.409 celui de la notation syntaxique abstraite ISO. La principale différence ici est que XDR utilise le typage implicite, tandis que X.409 utilise le typage explicite. Avec XDR, un seul ensemble de routines de conversion n'a besoin d'être écrit qu'une seule fois.
Le temps passé à convertir vers et depuis une représentation canonique est insignifiant, en particulier dans les applications réseau. Lors de la préparation d'une structure de données pour le transfert, la traversée des éléments de la structure demande plus de temps que la conversion des données. Dans les applications réseau, un temps supplémentaire est nécessaire pour déplacer les données vers le bas à travers les couches de protocole de l'expéditeur, à travers le réseau et vers le haut à travers les couches de protocole du récepteur. Chaque machine doit traverser et copier des structures de données, que la conversion soit requise ou non.