C bibliothèque XML pour les Systèmes Embarqués

Je suis en train de travailler sur un projet pour un système embarqué qui utilise XML pour entrer des données dans et hors du système. Je ne veux pas le XML de la manutention de dégénérer en un tas de bits que construire des chaînes XML à l'aide de snprintf()/strcat() et amis ou parse XML par comptage "<" et ">" caractères.

J'ai trouvé plusieurs bibliothèques XML, un couple de ce qui pourrait même être assez petit, mais le plus proche qu'ils viennent C est le C++, ce qui n'est pas dans les cartes pour ce système. J'espère que je peux trouver une bibliothèque XML qui respecte les contraintes suivantes:

  • Code source C
  • pas d'allocation dynamique de la mémoire
  • à bas prix. Gratuit est meilleur, mais le copyleft ne suffit pas.

Il n'a pas à être un analyseur complet - je veux juste être en mesure d'extraire du texte d'éléments imbriqués et ont une assez moyen simple de générer du code XML qui ne repose pas sur les chaînes de format. Les attributs ne sont pas utilisés (encore), de sorte que la bibliothèque n'a pas besoin de les soutenir même. Les documents XML sont assez petites, donc quelque chose qui est DOM-comme ce serait bien, aussi longtemps que il va travailler avec le client fourni tampons (parser le XML brut en place serait bien).

PugXML et TinyXML l'air d'être assez proche, mais je suis en espérant que quelqu'un là-bas sait à propos d'un XML lib adaptés pour C-systèmes embarqués à base de que mon googler est manquant.

  • Il est possible que les auteurs de certains "copyleft" les bibliothèques pourraient être disposés et en mesure de vous vendre une alternative licence d'utilisation commerciale de leur code.
  • Si j'étais dans votre position, en raison des contraintes des systèmes embarqués, je serais d'étudier sérieusement les alternatives à XML. En fonction de la nature des données, il pourrait y avoir de meilleures façons de les encapsuler les données qui ne nécessitent pas autant de la charge de traitement à la fois pour la génération et l'analyse.
  • Nous avons eu la même situation et ne pouvais pas trouver toutes les petites lib, donc j'ai fini par écrire un pour système embarqué avec la taille du binaire < 20K mais il utilise des tas. Il prend en charge uniquement les caractères ASCII avec l'espace de noms. Souhaite que je pourrais vous aider, mais son propriétaire 🙁
  • J'ai réalisé JSON est une bonne alternative et ne nécessitent nucht moins effert l'analyse de XML. Un analyseur ne serait pas que compicated à écrire et vous pourriez obtenir seulement le long avec de la pile, mais pas de tas facilement.
  • J'ai essayé [ezxml ][1] il est très facile et parfait de la bibliothèque C pour système embarqué, vous pouvez utiliser à la fois pour la construction et l'analyse de XML [1]: ezxml.sourceforge.net
InformationsquelleAutor Michael Burr | 2009-07-15