a very simple XML parser
namespace alps {
struct XMLTag;
std::string parse_identifier(std::istream & in);
ALPS_DECL std::string parse_parameter_name(std::istream &);
std::string read_until(std::istream &, char);
ALPS_DECL void check_character(std::istream &, char, const std::string &);
ALPS_DECL XMLTag parse_tag(std::istream &, bool = true);
ALPS_DECL std::string parse_content(std::istream & in);
ALPS_DECL void skip_element(std::istream &, const XMLTag &);
ALPS_DECL void check_tag(std::istream &, const std::string &);
}
ALPS_XMLSTREAM_DO_TYPE(T)
namespace alps {
class oxstream;
unspecified header(const std::string & enc);
unspecified stylesheet(const std::string & url);
unspecified processing_instruction(const std::string & name);
unspecified start_tag(const std::string & name);
unspecified end_tag(const std::string & name = "");
template<typename T>
unspecified attribute(const std::string & name, const T & value);
unspecified xml_namespace(const std::string & name, const std::string & url);
oxstream & start_comment(oxstream & oxs);
oxstream & end_comment(oxstream & oxs);
oxstream & start_cdata(oxstream & oxs);
oxstream & end_cdata(oxstream & oxs);
oxstream & no_linebreak(oxstream & oxs);
ALPS_DECL std::string convert(const std::string & str);
template<typename T> std::string precision(const T & d, int n);
}namespace std {
alps::oxstream & endl(alps::oxstream & oxs);
}