GdomeDocumentFragment

Name

GdomeDocumentFragment -- Interface DocumentFragment implementation.

Synopsis



struct      GdomeDocumentFragment;
void        gdome_df_ref                    (GdomeDocumentFragment *self,
                                             GdomeException *exc);
void        gdome_df_unref                  (GdomeDocumentFragment *self,
                                             GdomeException *exc);
gpointer    gdome_df_query_interface        (GdomeDocumentFragment *self,
                                             const char *interface,
                                             GdomeException *exc);
GdomeDOMString* gdome_df_nodeName           (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeDOMString* gdome_df_nodeValue          (GdomeDocumentFragment *self,
                                             GdomeException *exc);
void        gdome_df_set_nodeValue          (GdomeDocumentFragment *self,
                                             GdomeDOMString *nodeValue,
                                             GdomeException *exc);
unsigned short gdome_df_nodeType            (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeNode*  gdome_df_parentNode             (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeNodeList* gdome_df_childNodes          (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeNode*  gdome_df_firstChild             (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeNode*  gdome_df_lastChild              (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeNode*  gdome_df_previousSibling        (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeNode*  gdome_df_nextSibling            (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeNamedNodeMap* gdome_df_attributes      (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeDocument* gdome_df_ownerDocument       (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeNode*  gdome_df_insertBefore           (GdomeDocumentFragment *self,
                                             GdomeNode *newChild,
                                             GdomeNode *refChild,
                                             GdomeException *exc);
GdomeNode*  gdome_df_replaceChild           (GdomeDocumentFragment *self,
                                             GdomeNode *newChild,
                                             GdomeNode *oldChild,
                                             GdomeException *exc);
GdomeNode*  gdome_df_removeChild            (GdomeDocumentFragment *self,
                                             GdomeNode *oldChild,
                                             GdomeException *exc);
GdomeNode*  gdome_df_appendChild            (GdomeDocumentFragment *self,
                                             GdomeNode *newChild,
                                             GdomeException *exc);
GdomeBoolean gdome_df_hasChildNodes         (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeNode*  gdome_df_cloneNode              (GdomeDocumentFragment *self,
                                             GdomeBoolean deep,
                                             GdomeException *exc);
void        gdome_df_normalize              (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeBoolean gdome_df_isSupported           (GdomeDocumentFragment *self,
                                             GdomeDOMString *feature,
                                             GdomeDOMString *version,
                                             GdomeException *exc);
GdomeDOMString* gdome_df_namespaceURI       (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeDOMString* gdome_df_prefix             (GdomeDocumentFragment *self,
                                             GdomeException *exc);
void        gdome_df_set_prefix             (GdomeDocumentFragment *self,
                                             GdomeDOMString *prefix,
                                             GdomeException *exc);
GdomeDOMString* gdome_df_localName          (GdomeDocumentFragment *self,
                                             GdomeException *exc);
GdomeBoolean gdome_df_hasAttributes         (GdomeDocumentFragment *self,
                                             GdomeException *exc);
void        gdome_df_addEventListener       (GdomeDocumentFragment *self,
                                             GdomeDOMString *type,
                                             GdomeEventListener *listener,
                                             GdomeBoolean useCapture,
                                             GdomeException *exc);
void        gdome_df_removeEventListener    (GdomeDocumentFragment *self,
                                             GdomeDOMString *type,
                                             GdomeEventListener *listener,
                                             GdomeBoolean useCapture,
                                             GdomeException *exc);
GdomeBoolean gdome_df_dispatchEvent         (GdomeDocumentFragment *self,
                                             GdomeEvent *evt,
                                             GdomeException *exc);
void        gdome_df_subTreeDispatchEvent   (GdomeDocumentFragment *self,
                                             GdomeEvent *evt,
                                             GdomeException *exc);
GdomeBoolean gdome_df_canAppend             (GdomeDocumentFragment *self,
                                             GdomeNode *newChild,
                                             GdomeException *exc);

Description

GdomeDocumentFragment is a "lightweight" or "minimal" GdomeDocument object. It is common to want to be able to extract a portion of a document's tree or to create a new fragment of a document. Imagine implementing a user command like cut or rearranging a document by moving fragments around. It is desirable to have an object which can hold such fragments and it is quite natural to use a GdomeNode for this purpose. While it is true that a GdomeDocument object could fulfill this role, a GdomeDocument object can potentially be a heavyweight object. What is really needed for this is a very lightweight object. GdomeDocumentFragment is such an object.

Furthermore, various operations -- such as inserting nodes as children of another GdomeNode -- may take GdomeDocumentFragment objects as arguments; this results in all the child nodes of the GdomeDocumentFragment being moved to the child list of this node.

The children of a GdomeDocumentFragment node are zero or more nodes representing the tops of any sub-trees defining the structure of the document. GdomeDocumentFragment nodes do not need to be well-formed XML documents (although they do need to follow the rules imposed upon well-formed XML parsed entities, which can have multiple top nodes). For example, a GdomeDocumentFragment might have only one child and that child node could be a GdomeText node. Such a structure model represents neither an HTML document nor a well-formed XML document.

When a GdomeDocumentFragment is inserted into a GdomeDocument (or indeed any other GdomeNode that may take children) the children of the GdomeDocumentFragment and not the GdomeDocumentFragment itself are inserted into the GdomeNode. This makes the GdomeDocumentFragment very useful when the user wishes to create nodes that are siblings; the GdomeDocumentFragment acts as the parent of these nodes so that the user can use the standard methods from the GdomeNode interface, such as gdome_n_insertBefore() and gdome_n_appendChild().

Details

struct GdomeDocumentFragment

struct GdomeDocumentFragment {
	gpointer user_data;
};


gdome_df_ref ()

void        gdome_df_ref                    (GdomeDocumentFragment *self,
                                             GdomeException *exc);

Increase the reference count of the specified Node.


gdome_df_unref ()

void        gdome_df_unref                  (GdomeDocumentFragment *self,
                                             GdomeException *exc);

Decrease the reference count of the specified Node. Free the Node structure if the Node will have zero reference.


gdome_df_query_interface ()

gpointer    gdome_df_query_interface        (GdomeDocumentFragment *self,
                                             const char *interface,
                                             GdomeException *exc);


gdome_df_nodeName ()

GdomeDOMString* gdome_df_nodeName           (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_nodeValue ()

GdomeDOMString* gdome_df_nodeValue          (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_set_nodeValue ()

void        gdome_df_set_nodeValue          (GdomeDocumentFragment *self,
                                             GdomeDOMString *nodeValue,
                                             GdomeException *exc);

Sets The value of this node, depending on its type.

GDOME_NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.


gdome_df_nodeType ()

unsigned short gdome_df_nodeType            (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_parentNode ()

GdomeNode*  gdome_df_parentNode             (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_childNodes ()

GdomeNodeList* gdome_df_childNodes          (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_firstChild ()

GdomeNode*  gdome_df_firstChild             (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_lastChild ()

GdomeNode*  gdome_df_lastChild              (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_previousSibling ()

GdomeNode*  gdome_df_previousSibling        (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_nextSibling ()

GdomeNode*  gdome_df_nextSibling            (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_attributes ()

GdomeNamedNodeMap* gdome_df_attributes      (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_ownerDocument ()

GdomeDocument* gdome_df_ownerDocument       (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_insertBefore ()

GdomeNode*  gdome_df_insertBefore           (GdomeDocumentFragment *self,
                                             GdomeNode *newChild,
                                             GdomeNode *refChild,
                                             GdomeException *exc);

Inserts the node newChild before the existing child node refChild. If refChild is NULL, insert newChild at the end of the list of children. If newChild is a DocumentFragment node, all of its children are inserted, in the same order, before refChild. If the newChild is already in the tree, it is first removed.

GDOME_HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to insert is one of this node's ancestors or this node itself. GDOME_WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node. GDOME_NOT_FOUND_ERR: Raised if refChild is not a child of this node. GDOME_NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.


gdome_df_replaceChild ()

GdomeNode*  gdome_df_replaceChild           (GdomeDocumentFragment *self,
                                             GdomeNode *newChild,
                                             GdomeNode *oldChild,
                                             GdomeException *exc);

Replaces the child node oldChild with newChild in the list of children, and returns the oldChild node. If newChild is a DocumentFragment object, oldChild is replaced by all of the DocumentFragment children, which are inserted in the same order. If the newChild is already in the tree, it is first removed.

GDOME_HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to put in is one of this node's ancestors or this node itself. GDOME_WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node. GDOME_NOT_FOUND_ERR: Raised if oldChild is not a child of this node. GDOME_NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.


gdome_df_removeChild ()

GdomeNode*  gdome_df_removeChild            (GdomeDocumentFragment *self,
                                             GdomeNode *oldChild,
                                             GdomeException *exc);

Removes the child node indicated by oldChild from the list of children, and returns it.

GDOME_NOT_FOUND_ERR: Raised if oldChild is not a child of this node. GDOME_NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.


gdome_df_appendChild ()

GdomeNode*  gdome_df_appendChild            (GdomeDocumentFragment *self,
                                             GdomeNode *newChild,
                                             GdomeException *exc);

Adds the node newChild to the end of the list of children of this node. If the newChild is already in the tree, it is first removed. If it is a DocumentFragment node, the entire contents of the document fragment are moved into the child list of this node

GDOME_HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not allow children of the type of the newChild node, or if the node to append is one of this node's ancestors or this node itself. GDOME_WRONG_DOCUMENT_ERR: Raised if newChild was created from a different document than the one that created this node. GDOME_NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.


gdome_df_hasChildNodes ()

GdomeBoolean gdome_df_hasChildNodes         (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_cloneNode ()

GdomeNode*  gdome_df_cloneNode              (GdomeDocumentFragment *self,
                                             GdomeBoolean deep,
                                             GdomeException *exc);

Makes a duplicate of this node, i.e., serves as a generic copy constructor for nodes. The duplicate node has no parent; (parentNode is NULL). GDOME_DOCUMENT_TYPE_NODE, GDOME_NOTATION_NODE and GDOME_ENTITY_NODE nodes are not supported.

GDOME_NOT_SUPPORTED_ERR: Raised if the type of node being cloned is not supported.


gdome_df_normalize ()

void        gdome_df_normalize              (GdomeDocumentFragment *self,
                                             GdomeException *exc);

Puts all Text nodes in the full depth of the sub-tree underneath this Node, including attribute nodes, into a "normal" form where only structure (e.g., elements, comments, processing instructions, CDATA sections, and entity references) separates Text nodes, i.e., there are neither adjacent Text nodes nor empty Text nodes.


gdome_df_isSupported ()

GdomeBoolean gdome_df_isSupported           (GdomeDocumentFragment *self,
                                             GdomeDOMString *feature,
                                             GdomeDOMString *version,
                                             GdomeException *exc);

Tests whether the DOM implementation implements a specific feature and that feature is supported by this node.


gdome_df_namespaceURI ()

GdomeDOMString* gdome_df_namespaceURI       (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_prefix ()

GdomeDOMString* gdome_df_prefix             (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_set_prefix ()

void        gdome_df_set_prefix             (GdomeDocumentFragment *self,
                                             GdomeDOMString *prefix,
                                             GdomeException *exc);

Sets a new nemaspace prefix for this node.

GDOME_NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. GDOME_NAMESPACE_ERR: Raised if the specified prefix is malformed per the Namespaces in XML specification, if the namespaceURI of this node is NULL, if the specified prefix is "xml" and the namespaceURI of this node is different from "http://www.w3.org/XML/1998/namespace", if this node is an attribute and the specified prefix is "xmlns" and the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/", or if this node is an attribute and the qualifiedName of this node is "xmlns".


gdome_df_localName ()

GdomeDOMString* gdome_df_localName          (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_hasAttributes ()

GdomeBoolean gdome_df_hasAttributes         (GdomeDocumentFragment *self,
                                             GdomeException *exc);


gdome_df_addEventListener ()

void        gdome_df_addEventListener       (GdomeDocumentFragment *self,
                                             GdomeDOMString *type,
                                             GdomeEventListener *listener,
                                             GdomeBoolean useCapture,
                                             GdomeException *exc);

This method allows the registration of event listeners on the event target. If an EventListener is added to an EventTarget while it is processing an event, it will not be triggered by the current actions but may be triggered during a later stage of event flow, such as the bubbling phase. If multiple identical EventListeners are registered on the same EventTarget with the same parameters the duplicate instances are discarded. They do not cause the EventListener to be called twice and since they are discarded they do not need to be removed with the removeEventListener method.


gdome_df_removeEventListener ()

void        gdome_df_removeEventListener    (GdomeDocumentFragment *self,
                                             GdomeDOMString *type,
                                             GdomeEventListener *listener,
                                             GdomeBoolean useCapture,
                                             GdomeException *exc);

This method allows the removal of event listeners from the event target. If an EventListener is removed from an EventTarget while it is processing an event, it will not be triggered by the current actions. EventListeners can never be invoked after being removed. Calling removeEventListener with arguments which do not identify any currently registered EventListener on the EventTarget has no effect.


gdome_df_dispatchEvent ()

GdomeBoolean gdome_df_dispatchEvent         (GdomeDocumentFragment *self,
                                             GdomeEvent *evt,
                                             GdomeException *exc);

This method allows the dispatch of events into the implementations event model. Events dispatched in this manner will have the same capturing and bubbling behavior as events dispatched directly by the implementation. The target of the event is the EventTarget on which dispatchEvent is called.

GDOME_UNSPECIFIED_EVENT_TYPE_ERR: Raised if the Event's type was not specified by initializing the event before dispatchEvent was called. Specification of the Event's type as NULL or an empty string will also trigger this exception.


gdome_df_subTreeDispatchEvent ()

void        gdome_df_subTreeDispatchEvent   (GdomeDocumentFragment *self,
                                             GdomeEvent *evt,
                                             GdomeException *exc);

This method allows the dispatch of events into the implementations event model. Events dispatched in this manner will have the same capturing and bubbling behavior as events dispatched directly by the implementation. The target of the event is any nodes in the subtree of the EventTarget on which dispatchEvent is called.

GDOME_UNSPECIFIED_EVENT_TYPE_ERR: Raised if the Event's type was not specified by initializing the event before dispatchEvent was called. Specification of the Event's type as NULL or an empty string will also trigger this exception.


gdome_df_canAppend ()

GdomeBoolean gdome_df_canAppend             (GdomeDocumentFragment *self,
                                             GdomeNode *newChild,
                                             GdomeException *exc);

Tests if a newChild can be added in the child list of this node.