|
|
@ -5,8 +5,8 @@ |
|
|
|
// 1 2 3 4 5 6 7 8
|
|
|
|
// 1 2 3 4 5 6 7 8
|
|
|
|
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
|
|
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef XML_HXX |
|
|
|
#ifndef LIB_XML_CXX_HXX |
|
|
|
#define XML_HXX |
|
|
|
#define LIB_XML_CXX_HXX |
|
|
|
|
|
|
|
|
|
|
|
#include <istream> |
|
|
|
#include <istream> |
|
|
|
#include <string> |
|
|
|
#include <string> |
|
|
@ -85,9 +85,10 @@ namespace xml { |
|
|
|
//----------------------------------------------------------------------------
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
|
class type_mismatch: public exception { |
|
|
|
class type_mismatch: public exception { |
|
|
|
public: |
|
|
|
public: |
|
|
|
type_mismatch(const Node& t, const std::string& txt) throw(): |
|
|
|
type_mismatch(const Node& t, const std::string& txt, |
|
|
|
exception("wrong type, text contains mismatching character\ntext: " |
|
|
|
const std::string& comment) throw(): |
|
|
|
+txt, t) {} |
|
|
|
exception("wrong type, text contains mismatching character\n"+comment |
|
|
|
|
|
|
|
+"\ntext: "+txt, t) {} |
|
|
|
}; |
|
|
|
}; |
|
|
|
//----------------------------------------------------------------------------
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
|
class access_error: public exception { |
|
|
|
class access_error: public exception { |
|
|
@ -266,25 +267,20 @@ namespace xml { |
|
|
|
throw(); |
|
|
|
throw(); |
|
|
|
virtual String& append(const Node& o) throw(cannot_have_children); |
|
|
|
virtual String& append(const Node& o) throw(cannot_have_children); |
|
|
|
Node& operator=(const std::string& contents) throw(); |
|
|
|
Node& operator=(const std::string& contents) throw(); |
|
|
|
private: |
|
|
|
protected: |
|
|
|
std::string _text; |
|
|
|
std::string _text; |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
|
class UnsignedInteger: public Node { |
|
|
|
class UnsignedInteger: public String { |
|
|
|
public: |
|
|
|
public: |
|
|
|
String(std::string name, const std::string& text = std::string()) throw(); |
|
|
|
UnsignedInteger(std::string name, unsigned long i = 0) throw(); |
|
|
|
virtual std::auto_ptr<Node> clone() const throw(); |
|
|
|
virtual std::auto_ptr<Node> clone() const throw(); |
|
|
|
virtual ~String() throw() {} |
|
|
|
virtual ~UnsignedInteger() throw() {} |
|
|
|
virtual std::string text() const throw(); |
|
|
|
virtual UnsignedInteger& text(const std::string& txt) |
|
|
|
virtual String& text(const std::string& txt) throw(tag_expected, |
|
|
|
throw(tag_expected, type_mismatch); |
|
|
|
type_mismatch); |
|
|
|
unsigned long number() const throw(); |
|
|
|
virtual std::ostream& out(std::ostream& o, unsigned int level=0) const |
|
|
|
static unsigned long number(const Node& node) throw(); |
|
|
|
throw(); |
|
|
|
|
|
|
|
virtual String& append(const Node& o) throw(cannot_have_children); |
|
|
|
|
|
|
|
Node& operator=(const std::string& contents) throw(); |
|
|
|
|
|
|
|
private: |
|
|
|
|
|
|
|
std::string _text; |
|
|
|
|
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
|