Actually I decided to retrograde to plain XML generation for now because I found the available XML tools for C++ somewhat cumbersome... and schema creation in any automated way seems to be a rare feature in free software.
I found a free class online that allows XML generation with little additional code (though a lot of performance) overhead compared to a real constructor and doesn't need me to convert numbers to strings or escape anything.
Which means I can generate a resource using code like (where t is for tag, a is for attribute, e is for endtag):
Code:
std::ostringstream xml;
XmlStream(xml) << t("Model") <<
a("name") << "quadmodel" << a("geometry") << "myquadgeom" <<
t("Mesh") <<
a("name") << "quadname" << a("material") << "my.material.xml" <<
a("batchStart") << 0 << a("batchCount") << 6 <<
a("vertRStart") << 0 << a("vertREnd") << 3 <<
e("Model"); // Mesh tag is closed automatically...
Horde3D::loadResource(quadmodel, xml.str().c_str(), xml.str().length()+1 );
http://www.codeproject.com/KB/stl/simple_xmlwriter.aspx