IDOM_Attr class refers to an attribute of an XML element.
*
* Typically the allowable values for the
* attribute are defined in a documenttype definition.
* IDOM_Attr objects inherit the DOM_Node interface, but
* since attributes are not actually child nodes of the elements they are associated with, the
* DOM does not consider them part of the document tree. Thus, the
* DOM_Node attributes parentNode,
* previousSibling, and nextSibling have a null
* value for IDOM_Attr objects. The DOM takes the view that
* attributes are properties of elements rather than having a separate
* identity from the elements they are associated with; this should make it
* more efficient to implement such features as default attributes associated
* with all elements of a given type. Furthermore, attribute nodes
* may not be immediate children of a DocumentFragment. However,
* they can be associated with Element nodes contained within a
* DocumentFragment. In short, users of the DOM
* need to be aware that Attr nodes have some things in common
* with other objects inheriting the Node interface, but they
* also are quite distinct.
*
*/
class CDOM_EXPORT IDOM_Attr: public IDOM_Node {
protected:
IDOM_Attr() {};
IDOM_Attr(const IDOM_Attr &other) {};
IDOM_Attr & operator = (const IDOM_Attr &other) {return *this;};
public:
/** @name Destructor */
//@{
/**
* Destructor. The object being destroyed is a reference to the Attribute
* "node", not the underlying attribute itself.
*
*/
virtual ~IDOM_Attr() {};
//@}
/** @name Getter functions */
//@{
/**
* Returns the name of this attribute.
*/
virtual const XMLCh * getName() const = 0;
/**
*
* Returns true if the attribute received its value explicitly in the
* XML document, or if a value was assigned programatically with
* the setValue function. Returns false if the attribute value
* came from the default value declared in the document's DTD.
*/
virtual bool getSpecified() const = 0;
/**
* Returns the value of the attribute.
*
* The value of the attribute is returned as a string.
* Character and general entity references are replaced with their values.
*/
virtual const XMLCh * getValue() const = 0;
//@}
/** @name Setter functions */
//@{
/**
* Sets the value of the attribute. A text node with the unparsed contents
* of the string will be created.
*
* @param value The value of the DOM attribute to be set
*/
virtual void setValue(const XMLCh *value) = 0;
//@}
/** @name Functions introduced in DOM Level 2. */
//@{
/**
* The DOM_Element node this attribute is attached to or
* null if this attribute is not in use.
*
*/
virtual IDOM_Element *getOwnerElement() const = 0;
//@}
};
#endif