class Poco::XML::EntityReference
Overview
EntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference. More…
#include <EntityReference.h> class EntityReference: public Poco::XML::AbstractNode { public: // methods virtual const XMLString& nodeName() const; virtual unsigned short nodeType() const; protected: // construction EntityReference( Document* pOwnerDocument, const XMLString& name ); EntityReference( Document* pOwnerDocument, const EntityReference& ref ); // methods virtual Node* copyNode( bool deep, Document* pOwnerDocument ) const; };
Inherited Members
public: // typedefs typedef Poco::XML::NamespaceSupport NSMap; // enums enum { ELEMENT_NODE = 1, ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, ENTITY_REFERENCE_NODE, ENTITY_NODE, PROCESSING_INSTRUCTION_NODE, COMMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, DOCUMENT_FRAGMENT_NODE, NOTATION_NODE, }; // methods void duplicate() const; void release() const; virtual void autoRelease() = 0; virtual void addEventListener( const XMLString& type, EventListener* listener, bool useCapture ) = 0; virtual void removeEventListener( const XMLString& type, EventListener* listener, bool useCapture ) = 0; virtual bool dispatchEvent(Event* evt) = 0; virtual const XMLString& nodeName() const = 0; const XMLString& nodeValue() const; virtual const XMLString& getNodeValue() const = 0; virtual void setNodeValue(const XMLString& value) = 0; virtual unsigned short nodeType() const = 0; virtual Node* parentNode() const = 0; virtual NodeList* childNodes() const = 0; virtual Node* firstChild() const = 0; virtual Node* lastChild() const = 0; virtual Node* previousSibling() const = 0; virtual Node* nextSibling() const = 0; virtual NamedNodeMap* attributes() const = 0; virtual Document* ownerDocument() const = 0; virtual Node* insertBefore( Node* newChild, Node* refChild ) = 0; virtual Node* replaceChild( Node* newChild, Node* oldChild ) = 0; virtual Node* removeChild(Node* oldChild) = 0; virtual Node* appendChild(Node* newChild) = 0; virtual bool hasChildNodes() const = 0; virtual Node* cloneNode(bool deep) const = 0; virtual void normalize() = 0; virtual bool isSupported( const XMLString& feature, const XMLString& version ) const = 0; virtual const XMLString& namespaceURI() const = 0; virtual XMLString prefix() const = 0; virtual const XMLString& localName() const = 0; virtual bool hasAttributes() const = 0; virtual XMLString innerText() const = 0; virtual Node* getNodeByPath(const XMLString& path) const = 0; virtual Node* getNodeByPathNS( const XMLString& path, const NSMap& nsMap ) const = 0; virtual const XMLString& nodeName() const; virtual const XMLString& getNodeValue() const; virtual void setNodeValue(const XMLString& value); virtual Node* parentNode() const; virtual NodeList* childNodes() const; virtual Node* firstChild() const; virtual Node* lastChild() const; virtual Node* previousSibling() const; virtual Node* nextSibling() const; virtual NamedNodeMap* attributes() const; virtual Document* ownerDocument() const; virtual Node* insertBefore( Node* newChild, Node* refChild ); virtual Node* replaceChild( Node* newChild, Node* oldChild ); virtual Node* removeChild(Node* oldChild); virtual Node* appendChild(Node* newChild); virtual bool hasChildNodes() const; virtual Node* cloneNode(bool deep) const; virtual void normalize(); virtual bool isSupported( const XMLString& feature, const XMLString& version ) const; virtual const XMLString& namespaceURI() const; virtual XMLString prefix() const; virtual const XMLString& localName() const; virtual bool hasAttributes() const; virtual void addEventListener( const XMLString& type, EventListener* listener, bool useCapture ); virtual void removeEventListener( const XMLString& type, EventListener* listener, bool useCapture ); virtual bool dispatchEvent(Event* evt); virtual XMLString innerText() const; virtual Node* getNodeByPath(const XMLString& path) const; virtual Node* getNodeByPathNS( const XMLString& path, const NSMap& nsMap ) const; virtual void autoRelease(); protected: // fields static const XMLString EMPTY_STRING; // methods virtual Node* copyNode( bool deep, Document* pOwnerDocument ) const = 0; virtual bool events() const; virtual bool eventsSuspended() const; void captureEvent(Event* evt); void bubbleEvent(Event* evt); void dispatchSubtreeModified(); void dispatchNodeInserted(); void dispatchNodeRemoved(); virtual void dispatchNodeRemovedFromDocument(); virtual void dispatchNodeInsertedIntoDocument(); void dispatchAttrModified( Attr* pAttr, MutationEvent::AttrChangeType changeType, const XMLString& prevValue, const XMLString& newValue ); void dispatchCharacterDataModified( const XMLString& prevValue, const XMLString& newValue ); void setOwnerDocument(Document* pOwnerDocument);
Detailed Documentation
EntityReference objects may be inserted into the structure model when an entity reference is in the source document, or when the user wishes to insert an entity reference.
Note that character references and references to predefined entities are considered to be expanded by the HTML or XML processor so that characters are represented by their Unicode equivalent rather than by an entity reference. Moreover, the XML processor may completely expand references to entities while building the structure model, instead of providing EntityReference objects. If it does provide such objects, then for a given EntityReference node, it may be that there is no Entity node representing the referenced entity. If such an Entity exists, then the child list of the EntityReference node is the same as that of the Entity node.
As for Entity nodes, EntityReference nodes and all their descendants are readonly.
The resolution of the children of the EntityReference (the replacement value of the referenced Entity) may be lazily evaluated; actions by the user (such as calling the childNodes method on the EntityReference node) are assumed to trigger the evaluation.