XDI est un framework en JAVA pour l'échange et l'intégration de données, adapté à tous types d'applications. Le principe de fonctionnement consiste en trois éléments :
L'import et l'export de donnée sont des processus "intelligents" basés sur un modèle objet permettant leur contrôle et leur extension pour des besoins spécifiques :
XDI permet l'export et l'import de tous types de données, même binaires.
XDI intègre une validation des données et une gestion d'erreur.
Pour les spécificités liées à certaines applications, le principe d'extension permet, par exemple, de fusionner des données, d'effectuer des validations supplémentaires, de canaliser la gestion des erreurs pour s'adapter à un mode spécifique (envoi d'alertes, logs ...)
Pour permettre l'importation de données en base, un format XML représentant la base de données est défini. Ce format contient un ensemble d'attributs rattachés à des balises permettant de définir les types de données et les actions (création, mise à jour, suppression, fusion ...).
La validation est gérée en définissant un XMLSchema ou une DTD en corrélation avec le format XML précédemment défini.
La gestion des erreurs est par défaut "passive". Le principe consiste en un objet à l'écoute des erreurs remontées lors des traitements qui par défaut logue l'information mais n'arrête pas le processus. Ainsi les données correctes sont traitées. Cet objet peut être étendu pour s'adapter à des besoins spécifiques et permet alors de stopper le processus si besoin.
Pour des raisons de performances, les données sont traitées sous forme d'entité. Le document XML consiste en une liste de "fragment" XML représentant une table de la base de données. Ainsi il est possible de traiter des documents XML de grande taille, la lecture du document se faisant séquentiellement, entité par entité.

XDI intègre un modèle de conversion pour s'adapter à des formats XML existants ou pour exploiter des formats autre que XML à l'import comme à l'export.
L'adaptation à des formats XML existant utilise la technologie XSLT, l'utilisateur d'XDI devra concevoir son convertisseur en créant une feuille de style XSL.
L'exploitation de formats autre que XML est plus spécifique. Actuellement XDI propose de base deux convertisseurs :