OpenDocument est conçu non seulement pour devenir un format commun pour les applications bureautiques du marché, mais aussi pour permettre la production ou l'exploitation automatique de documents dans le cadre de toutes sortes d'applications. L'objectif est de réaliser ces traitements en accédant directement aux fichiers, sans dépendre d'un logiciel bureautique quelconque, de manière à pouvoir développer des applications plus robustes, plus performantes et capables de s'exécuter dans d'autres environnements que les postes de travail des utilisateurs. Cet objectif concerne deux sortes d'applications, à savoir d'une part celles qui exploitent les données contenues dans les documents (traitement de formulaires, gestion électronique des documents), et d'autre part celles qui produisent ou modifient des documents à partir d'informations de gestion.
L'enjeu est important dans la mesure où il est de plus en plus nécessaire d'améliorer l'interopérabilité entre bureautique et système d'information.
L'outil le plus complet est UNO, mais il s'agit d'un cas très particulier. Plus qu'une simple interface de programmation, UNO est le composant central de la suite bureautique OpenOffice.org. De ce fait, il ne correspond pas tout à fait au critère d'indépendance envers un logiciel bureautique et implique des contraintes de performances non négligeables. De plus, du fait même de sa richesse, cet outil est d'un maniement complexe. Cependant, UNO permet aux programmeurs, si nécessaire, de disposer de nombreuses fonctionnalités automatisables d'OpenOffice.org et peut être utilisé dans plusieurs environnements. Il supporte nativement les langages Java, C++ et Python. Des adaptations pour d'autres langages (comme Perl, Delphi et Tcl) sont disponibles ou prévues, mais avec des possibilités plus limitées.
Pour développer des applications réellement indépendantes de tout « moteur » bureautique particulier dans de bonnes conditions de performances, on doit disposer d'outils offrant au minimum trois types de fonctionnalités :
Ces fonctionnalités de base sont disponibles dans la plupart des langages de programmation usuels. Elles sont cependant peu productives et ne peuvent être utilisées que par des développeurs maîtrisant la spécification OpenDocument. Des outils de développement de plus haut niveau, plus spécialement conçus pour OpenDocument, sont nécessaires pour réduire la complexité des programmes et l'effort d'apprentissage du développeur. Dans ce domaine, plusieurs initiatives ont vu le jour ; certaines ont déjà produit des solutions opérationnelles, d'autres sont émergentes. En voici quelques-unes :