Linux SoftwareProgrammingLibrariesC++ XML Objects 1.0.0.7

C++ XML Objects 1.0.0.7


C++ XML Objects is a framework for persisting hierarchies of C++ objects to and from XML
Developer:   Paul Hamilton
      more software by author →
Price:  0.00
License:   Freeware
File size:   0K
Language:   
OS:   
Rating:   0 /5 (0 votes)
Your vote:  
enlarge screenshot


C++ XML Objects is a framework for persisting hierarchies of C++ objects to and from XML. Boost, The STL and Patterns are used extensively. All platforms which support Boost will be supported.

Sometimes there is a need to save hierarchies of C++ objects to a file (or DB etc), and then retrieve them at a later date. This project allows your classes to derive from a single object (called "xmlobj"), provide a few extra methods which allow the visitor pattern to work on them and register them so that they can be read or written to an XML stream.

The only overhead is a per-class type and name of each object (as std::string). The members don't need to be wrapped which means that your memory footprint won't really get any larger.

There are actually 2 separate projects which are combined to make "cppxmlobj". The first is a called "cppreflect" and provides a framework for providing reflection to C++ objects. Reflection is the mechanism by which your class members can be referenced by a string name. To achieve this, "cppreflect" uses the visitor pattern. The other project is "cpppersist" which adds the right methods to each object so that it can be read or written to some type of stream.

These projects are included as part of this (they aren't separate SourceForge projects), but they are completely independent of each other, so you could build your own scheme to persist your objects to a different type of file, or provide some other type of mechanism to read and write your objects data.

To interoperate, these two projects share a common base class which is provided by another independent project called "cppcommon". This is a simple class which provides the abstract interfaces necessary for an object to provide different types of facilities.

The project uses all the facilities of Boost for the build system (and for a bunch of the implementation) so you will need to get and build it. It uses the same license as Boost which means you can freely use it (it's really only useful as source code anywhere), as long as you don't change the copyright message at the top of the files.

If you find it useful, or find some bugs (and fix them, then get back to me and I'll incorporate the changes. If you do this through SourceForge, then we can track the bugs etc.

What's New in This Release:
  • Added in delayed loading. This allows a system to only load in an object in an XML file when the object is actually referenced. Added in "platforms" to documentation for supported platforms. Now builds on OS X Tiger, GCC 4.0 and latest BOOST (1.33.1). Also builds on latest Linux. Change the documentation layout (thank's Spirit), and added Generic objects. Also changed to use a single license.txt referenced at the top of each file. Since this code has been stable and working for a while, next release will be beta if I can build on a few more systems.
    tags your objects  class which  change the  the top  uses the  which means  the visitor  visitor pattern  each object  framework for  

    Download C++ XML Objects 1.0.0.7


     http://prdownloads.sourceforge.net/cppxmlobj/cppxmlobj_1_0_0_7.tgz?use_mirror=heanet
     http://prdownloads.sourceforge.net/cppxmlobj/cppxmlobj_1_0_0_7.tgz?use_mirror=osdn
     http://prdownloads.sourceforge.net/cppxmlobj/cppxmlobj_1_0_0_7.tgz?use_mirror=superb-west


    Authors software

    Similar software

    C++ XML Objects 1.0.0.7 (by Paul Hamilton)
    C++ XML Objects is a framework for persisting hierarchies of C++ objects to and from XML

    Template::Tutorial 2.15 (by Andy Wardley)
    Template::Tutorial are template toolkit tutorials.

    This section includes tutorials on using the Template Toolkit

    SXP 1.1 (by Ivan-Assen Ivanov)
    SXP stands for Simple XML Persistence, and is a quick-and-dirty C++ library I threw together

    CSer 0.0.1 (by Jeff Freedman)
    CSer is a library for C++ serialization, also called 'persistence'

    Games::Object 0.11 (by Peter J. Stewart)
    Games::Object is a Perl module to provide a base class for game objects.

    SYNOPSIS

    package MyGameObject;
    use Games::Obj

    Bio::PrimarySeqI 1.4 (by Ewan Birney)
    Bio::PrimarySeqI is a Perl Interface definition for a Bio::PrimarySeq.

    SYNOPSIS

    # Bio::PrimarySeqI is the interface class f

    Boost.Build 2.0-m11 (by Vladimir Prus)
    Boost.Build is a system for large project software construction, which is simple to use and powerfull

    XParam 1.22 (by Michael Brand)
    XParam is a general-purpose tool for parameter handling and object serialization in C++.

    It allows object serialization and deseri

    JDOInstruments 2.9.2 (by JDOInstruments Team)
    JDOInstruments is an embedded object oriented database programmed in java, it is also an implementation of Sun's Java Data Objects (J

    Spirit Parser library 1.8.2 (by Joel de Guzman)
    Spirit is an object oriented recursive descent parser generator framework implemented using template meta-programming techniques


    Other software in this category

    zlib 1.2.3 (by Jean-loup Gailly)
    zlib is designed to be a free, general-purpose, legally unencumbered, lossless data-compression library for use on virtually any comp

    libjpeg v6b (by Independent JPEG Group)
    libjpeg is a library for handling the JPEG (JFIF) image format

    OpenSSL 0.9.7c (by The OpenSSL Project Team)
    The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implement

    libxml2 2.6.27 (by DV)
    Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform), libxml2 library i

    GNU C library 2.4 (by Andreas Jaeger)
    GNU C library (glibc) is one of the most important components of GNU Hurd and most modern Linux distributions.

    GNU C library is us

  •     search


    Featured Software

    jEdit 4.3 pre8
    jEdit is an Open Source text editor written in Java

    Opera 9.02
    Surf the Internet in a safer, faster, and easier way with Opera browser

    GNU Aspell 0.60.4
    GNU Aspell is a Free and Open Source spell checker designed to eventually replace Ispell


    Subscribe in Rojo
    Google Reader
    Add to My Yahoo!

    Add to My AOL
    Subscribe with Bloglines
    Subscribe in NewsGator Online
    Add 'nixbit linux software' to Newsburst from CNET News.com
    del.icio.us nixbit linux software


    Top tags