Definieren Sie "kompakt genug", haben Sie gemessen, dass es für Ihre Anwendung zu langsam ist? Vermeiden Sie premature optimisation.
Wie bei jedem Protokoll gibt es Kompromisse in verschiedenen Richtungen. XML bietet Ihnen ein bekanntes plattformübergreifendes Format mit Bibliotheken für nahezu jede Sprache, das alle Arten von strukturierten Daten darstellen kann. XMPP entscheidet sich dafür und verwendet optionale Komprimierung für bandbreitenbeschränkte Setups. Experimente in der XMPP-Welt mit alternativen Darstellungen haben sich selten als lohnend erwiesen.
Eine Kerbe von XML, aber immer noch viele der Vorteile bietet JSON. Es fehlt zwar der Namespace, aber es ist ziemlich einfach, und Bibliotheken sind fast so häufig wie XML-Bibliotheken. Dennoch ist JSON textbasiert und kann in einigen Situationen immer noch ausführlich sein.
Die letzte vernünftige Wahl wäre ein binäres Protokoll. Dies hat den Vorteil, dass Sie es speziell auf Ihre Anwendung zuschneiden und optimieren können. Die Nachteile sind, dass Sie das Parsing und die Serialisierung selbst schreiben müssen, obwohl es Tools gibt, um das zu automatisieren, wie das Protocol Buffers Projekt von Google.
Letztlich sind alle diese an verschiedenen Orten geeignet, und die Wahl liegt beim Anwendungsentwickler, für den sie für ein bestimmtes Projekt verwenden sollten.