Framework for persisting heirarchies of C++ objects to and from XML. Boost, The STL and Patterns are used extensively. All platforms which support Boost will be supported.
Be the first to post a text review of C++ XML Objects. Rate and review a project by clicking thumbs up or thumbs down in the right column.
* Added "object_name_visitor" and accept(object_name_visitor) into visitable_object. * Added "pretendable_object_base" interface for generics and delayed loading. * Added "importable_object_base" interface for delayed loading. * Added "nameable_object_base" interface for querying an object's name, so a visitor does not need to be used for this fundamental operation. * Virtual destructors on all abstract interfaces (for warnings). * Rework the tests. All common code in one class and general cleanup. * In jscript_object_navigator, use the new nameable() interface. * Document delayed loading. * Change object_visitor's to use the nameable interface. * XML parser can create objects that contain import information rather than importing the objects directly. * XML parser debug options are now bit flags, and there are new ones to list out the delayed loading info. * Persistable object contexts now need to say that they support delayed loading (or not), and then if they do they will be asked to create an object to hold the delayed load info. * New "ref_object" helper for accepting object_name_visitor"s. * New "vector_object" helper for accepting object_name_visitor"s. * Fixed bug in xmlobj::root() where it does not work from the actual root object. * xmlobj::_name and xmlobj::_type are now private. Use type() and name(). * Change visitors that only access the name or type of an object into object_name_visitors. This allows underlying objects to discern accesses by a visitor to the name of the object rather than the entire object. This allows the delayed_loading object to know not to load it's underlying object. * Fixed return from end of code in xmlobj.cpp. Found by GCC 4.0 * Removed -sTOOLS=darwin instructions for build (not needed on latest BOOST). * CSS Style cleanups. * fixed problem with member.hpp not building in 3.4.3. * Added "platforms.xml", and entry for this in docs. * Fixed template code for GCC 4.0. You need template <>. * Conditional compile code for tests between BOOST versions. * Removed license/copyright info and put them in a license.txt file. * Added "name()" to access the name of xmlobj_composite objects. * Fix problem in references where a loop would occur when visiting them because they would recursively visit. We now only recursively visit a reference if it is owned. * Changed look of the documentation to that of Spirit. * Got doxygen links working from docs. * Added "xmlobj::generic::generic" and "xmlobj::generic::generic_context". * Cleaned up parser to detect bad finishes. These are finishes where the stack is not empty. This usually means an unmatched tag. * Fixed crash when an object wasn't a composite in the parser. * Detect cases where inappropriate CDATA appears and warn of this. * When CDATA appears in a composite member, call set() on the member in the object to allow objects to decide that a member is not composite after all. * Name all tests with a longer description in the test log. * Added tests for the generic code.
We now do subversion, not CVS.
cppxmlobj now handles delayed loading. This means that XML files can be really large (line for cppliterate), and xi:includes are only loaded as needed. This feature can be turned off and on. Also builds on linux, gcc 4.0 and lot's of bugs fixed.
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use
Thanks for your rating!
Would you also like to write a review?
Thanks for your review!
Get credit for your review by logging in via OpenID. Click your account provider: