Qu'est-ce qu'un bon moyen de sérialiser l'arborescence d'objets Delphi en XML - en utilisant RTTI et non du code personnalisé?
Ce qui est une bonne façon de sérialiser un objet Delphi arbre XML--utilisant le RTTI et pas de code personnalisé?
J'aurais aimé trouver que cette fonctionnalité est déjà intégrée dans Delphi, mais il ne semble pas l'être.
J'ai trouvé quelques composants (posté ci-dessous) qui semblent comme ils pourraient exercer cette fonction. Avez-vous utilisé l'un d'eux ou une autre offre? Avez-vous construit votre propre? Ai-je raté quelque chose d'évident, en Delphi?
source d'informationauteur Mattias Andersson
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la JVCL TJvAppXMLFileStorage composant pour sérialiser TPersistent les classes dérivées.
JVCL est un choix, mais si vous préférez un petit, autonome, bibliothèque, il y a OmniXML (Mozilla Public License 1.1, http://www.omnixml.com/ ). Je l'ai utilisé avec succès dans plusieurs projets, et je trouve le plus simple bibliothèque XML à utiliser dans Delphi. OmniXML est livré avec 'OmniXMLPersistent de l'unité, qui fait ce que vous avez besoin via RTTI, tout comme la JVCL solution n'.
pfAttributes signifie propriétés seront stockées comme des attributs des éléments XML; ofIndent va produire un bien indenté le code pour plus de lisibilité.
DragonSoft de la Classe XML Sérialiseur
Lien: http://www.dragonsoft.us/delphi_vcl.php
Licence: sous Licence Mozilla Public Licence ("MPL") version 1.1
Citation: Permet de sérialiser/désérialiser des Objets VCL/Composants via XML. Sauvegarder/restaurer l'état de l'objet (propriétés publiées). Des classes spéciales de soutien - TStrings, TCollection, TPicture. Le plein contrôle du processus.
Simdesign de NativeXml
Lien: http://www.simdesign.nl/xml.html
Licence: € 29,95
Citation: Un natif de Delphi, XML parser et écrivain. Caractéristique Unique: la Boutique, la lecture et la création de TPersistent objet/XML directement (voir Example5). Cela se fait par itération à travers tous les objets' propriétés publiées par l'utilisation de RTTI (runtime type d'information). Cette fonctionnalité est disponible uniquement pour le D5 et.
JVCL de TJvTranslator.ComponentToXML
Lien: http://sourceforge.net/project/showfiles.php?group_id=45786&package_id=42327
Licence: sous Licence Mozilla Public Licence ("MPL") version 1.1
Observation: Semble faire récursive de la sérialisation, mais le fait qu'il est clairement prévu pour la "Traduction" donne-moi une pause.
J'ai fait un sérialiseur pour D2006 à l'aide de SOAP XML:
http://jankajanos.spaces.live.com/blog/cns!C3E2695FC6F7B0A4!791.entrée
Mais il y a un générique de l'édition pour la D2009 trop.
J'ai uploadé une nouvelle version. Il contient des commentaires en anglais:
http://janosjanka.spaces.live.com/blog/cns!E5C994C03FC0E370!181.entrée
En outre, il peut désérialiser un objet par le biais de pré-enregistrée types de classe.
C'est une chose très utile parce que vous pouvez désérialiser des objets sans connaître les types.