Beaucoup de langages de programmation fournissent un mécanisme d'inclusion, afin de faciliter la modularité. Cette proposition présente un mécanisme générique pour fusionner des documents XML dans un même et unique document XML.
L'objectif de XInclude est de permettre de modulariser l'écriture de documents XML et d'atteindre des objectifs de réutilisation de fragments partagés.
Utiliser XInclude relève d'un processus basé sur la forme désérialisée, en Infoset, de documents XML. Plus précisément, réaliser l'inclusion n'est en aucun cas le rôle d'un parser, mais plutôt celui d'un processus, déclenché, si nécessaire, une fois générées les Infoset du document contenant les inclusions. Le résultat de ce processus sera un nouveau jeu d'Infoset, résultant de la fusion du jeu primaire et de tous les jeux des objets à inclure. En ce sens, tous les processus applicatifs pourront décider quelle vue ils souhaitent obtenir du document primaire : une vue avec inclusions identifiées ou une vue avec inclusions réalisées.
Le mécanisme est différent de celui proposé par XLink, car indépendant des applications. En effet, dans XLink, ce que doit générer, en termes de comportement, un processeur de l'attribut show='embed', n'est pas spécifié de façon obligatoire.
Le mécanisme est aussi différent de celui utilisé par les DTD pour les entités externes, pour deux raisons principales :
D'un point de vue technique, pour utiliser ce mécanisme d'inclusion, il faut se situer dans l'espace de noms http://www.w3.org/1999/XML/xinclude. Ceci fait, deux attributs assurent l'inclusion, étant posés sur n'importe quel élément :
Pour conclure, XInclude souffre de la même faiblesse que le système de gestion des entités externes dans les DTD : le mécanisme de désignation des fichiers est contenu dans les documents XML eux-mêmes. On suivra alors avec intérêt la façon dont XInclude évoluera, dès lors que les propositions de catalogue externe (XML Catalogs) seront mises en place.