47 lines
978 B
C++
47 lines
978 B
C++
/*! @file
|
|
|
|
@id $Id$
|
|
*/
|
|
// 1 2 3 4 5 6 7 8
|
|
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
|
|
#include <xml-cxx/xml.hxx>
|
|
#include <iostream>
|
|
#include <sstream>
|
|
|
|
class A: public xml::Serialize {
|
|
public:
|
|
xml::Optional<int> a;
|
|
xml::Optional<std::string> txt;
|
|
protected:
|
|
void initXmlMembers() {
|
|
className("A");
|
|
persist(a, "a");
|
|
persist(txt, "txt");
|
|
}
|
|
};
|
|
|
|
class B: public xml::Serialize {
|
|
public:
|
|
xml::Optional<A> a;
|
|
xml::Optional<int> i;
|
|
xml::Optional<std::string> txt;
|
|
protected:
|
|
void initXmlMembers() {
|
|
className("B");
|
|
persist(a, "a");
|
|
persist(i, "i");
|
|
persist(txt, "txt");
|
|
}
|
|
};
|
|
|
|
int main(int, char**) {
|
|
{ // Serialization as a member
|
|
std::stringstream ss("<B><a><txt>Only this text is given</txt></a></B>");
|
|
B b;
|
|
b.loadXml(ss);
|
|
b.saveXml(std::cout)<<std::endl;
|
|
}
|
|
return 0;
|
|
}
|