#include <DbXml.hpp>
class DbXml::XmlValue {
public:
	XmlValue();
	XmlValue(const std::string &value);
	XmlValue(const char *value);
	XmlValue(double value);
	XmlValue(bool value);
	XmlValue(const XmlDocument &document);
	XmlValue(Type type, const std::string &value);
    XmlValue(const std::string &typeURI, 
        const std::string &typeName, 
        const std::string &value);
	XmlValue(Type type, const XmlData &data);
	virtual ~XmlValue();
	XmlValue(const XmlValue &);
	XmlValue &operator=(const XmlValue &);
	bool operator==(const XmlValue &v) const
	bool equals(const XmlValue &v) const;
	bool isNull() const;
	...
};
      
        The XmlValue class encapsulates the value of a node in an 
        XML document. The type of the value may be any one of the enumerated 
        types in the XmlValue::Type 
        enumeration.  There are convenience operators for specially handling 
        the types of STRING, DOUBLE, and BOOLEAN, as well as a constructor to 
        make an XmlValue from  
                XmlDocument
        .   
    
        The XmlValue class provides several constructors, each of 
        which maps a C++ type or Berkeley DB XML class onto an appropriate 
        XmlValue type. The following table lists the 
        constructor parameter mappings.
    
| C++ Type | XmlValueType | 
|---|---|
| No Parameter | NONE | 
| std::string or const char * | STRING | 
| double | DOUBLE | 
| bool | BOOLEAN | 
| XmlDocument | NODE | 
| Type and std::string | String is converted to the specified type. | 
| Type and XmlData | XmlDatais converted to
                        the specified type. | 
The Type may be any of of the following:
| XmlValue::NONE | XmlValue::G_DAY | 
| XmlValue::NODE | XmlValue::G_MONTH | 
| XmlValue::ANY_SIMPLE_TYPE | XmlValue::G_MONTH_DAY | 
| XmlValue::ANY_URI | XmlValue::G_YEAR | 
| XmlValue::BASE_64_BINARY | XmlValue::G_YEAR_MONTH | 
| XmlValue::BOOLEAN | XmlValue::HEX_BINARY | 
| XmlValue::DATE | XmlValue::NOTATION | 
| XmlValue::DATE_TIME | XmlValue::QNAME | 
| XmlValue::DATE_TIME_DURATION | XmlValue::STRING | 
| XmlValue::DECIMAL | XmlValue::TIME | 
| XmlValue::DOUBLE | XmlValue::YEAR_MONTH_DURATION | 
| XmlValue::DURATION | XmlValue::UNTYPE_ATOMIC | 
| XmlValue::FLOAT | XmlValue::BINARY | 
        The XmlValue class implements a set of methods 
        that test if the XmlValue is of a named type.  
        The XmlValue class also implements a set of 
        methods that return the XmlValue as a value of 
        a specified type.  If the XmlValue is of type 
        variable and no query context is provided when calling the test or 
        cast methods, or no binding can be found for the variable, an 
        exception is thrown.   
    
        In addition to type conversion, the XmlValue 
        class also provides DOM-like navigation functions. Using these, you 
        can retrieve features from the underlying document, such as the 
        parent, an attribute, or a child of the current node. 
    
This object is not thread-safe, and can only be safely used by one thread at a time in an application.
The following constructors are available for this class:
XmlValue(std:string &value)
or
XmlValue(const char *value)
                Construct an XmlValue object of type
                STRING.
            
XmlValue(double value)
                Construct an XmlValue object of type
                DOUBLE.
            
XmlValue(bool value)
                Construct an XmlValue object of type
                BOOLEAN.
            
XmlValue(Type, std:string &value)
or
XmlValue(TYPE, const XmlData &value)
                Construct an XmlValue object of the
                value Type, converting the string value
                to the specified type.
            
XmlValue(const std::string &typeURI, const std::string &typeName, 
    const std::string &value)
            
                Construct an XmlValue object of 
                the URI and type name provided, converting the string value
                to the specified type.
            
XmlValue(XmlDocument &document)
                Construct an XmlValue object of type
                NODE.