Je dois écrire une application linux C++ qui enregistre les paramètres au format XML (pour une édition facile) et communique également avec les applications existantes via des messages XML via des sockets et HTTP. Le problème est que je n'ai pas été capable de trouver des bibliothèques intelligentes pour m'aider, je n'ai pas vraiment envie d'écrire du code DOM ou SAX juste pour écrire et lire des messages très simples. Boost La sérialisation était presque une correspondance, mais elle ajoute beaucoup de données spécifiques au boost au xml qu'elle génère. Cela ne fonctionne évidemment pas bien pour les formats d'échange. Je me demande s'il est possible de faire en sorte que Boost Serialization ou une autre bibliothèque de sérialisation C++ génère un fichier XML propre. Cela ne me dérange pas s'il y a des attributs supplémentaires requis - comme un attribut de version, mais j'aimerais vraiment pouvoir contrôler leur nom et également se débarrasser des 'caractéristiques' que je n'utilise pas - tracking_level et class_id pour exemple.Sérialisation C++ Clean XML Similaire à XSTREAM
Idéalement, je voudrais juste avoir quelque chose de similaire à xstream en Java. Je suis conscient du fait que C++ manque d'introspection et qu'il est donc nécessaire de faire du codage manuel - mais ce serait bien s'il y avait une solution propre à lire et à écrire du simple XML sans kludges!
Si cela ne peut pas être fait, je suis également intéressé par des outils où le schéma XML est la ressource canonique (le contrat d'abord) - une bonne alternative JAXB au C++. Jusqu'à présent, j'ai seulement trouvé des solutions commerciales comme CodeSynthesis XSD. Je préférerais des solutions open source. J'ai essayé gSoap - mais il génère du code vraiment moche et il est aussi spécifique à SOAP.
En désespoir de cause, j'ai également commencé à chercher d'autres formats de sérialisation pour les protobuffers. Cela existe - mais seulement pour Java! Cela me surprend vraiment que les tampons de protocole semblent être un meilleur format d'échange de données pris en charge que XML. Je deviens fou juste de trouver des libs pour cette application et j'ai vraiment besoin de nouvelles idées. N'importe qui?