Boost logo

Boost Users :

Subject: [Boost-users] [serialization] removing excess XML tags
From: Paul Heil (paul.heil_at_[hidden])
Date: 2009-02-05 14:18:00


I'd like to use the boost::serialization library to generate XML that must
be read by a third party application. Unfortunately, this application does
not like the extra stuff that the serialization library generates.

The code below generates XML that looks like this:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!DOCTYPE boost_serialization>
    <boost_serialization signature="serialization::archive" version="5">
    <MYTAG class_id="0" tracking_level="0" version="0"></MYTAG>
    </boost_serialization>

What I need is XML that looks more like this:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <MYTAG></MYTAG>

What can I do to eliminate the extra stuff?

Thanks,
PaulH

class MyClass
{
private:
    friend class boost::serialization::access;

    template<class Archive>
    void serialize(Archive &ar, const unsigned int version){};

public:
    MyClass(){};
    friend std::ostream & operator<<(std::ostream &os, const MyClass &gp);
    virtual ~MyClass(){};
};

int main( int argc, _TCHAR* argv[] )
{
    MyClass mc;

    std::ofstream ofs("MyFile.xml");
    boost::archive::xml_oarchive oa(ofs);
    oa << boost::serialization::make_nvp( "MYTAG", mc );

    return 0;
}



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net