DOMRange Class Referenceabstract

`#include <xercesc/dom/DOMRange.hpp>`

## Public Types

Public Constants
enum | CompareHow { START_TO_START = 0 , START_TO_END = 1 , END_TO_END = 2 , END_TO_START = 3 }
| Constants CompareHow. More...

## Public Member Functions

Destructor
virtual | ~DOMRange ()
| Destructor.
Functions introduced in DOM Level 2
virtual DOMNode * | getStartContainer () const =0
| DOMNode within which the Range begins.
virtual XMLSize_t | getStartOffset () const =0
| Offset within the starting node of the Range.
virtual DOMNode * | getEndContainer () const =0
| DOMNode within which the Range ends.
virtual XMLSize_t | getEndOffset () const =0
| Offset within the ending node of the Range.
virtual bool | getCollapsed () const =0
| TRUE if the Range is collapsed.
virtual const DOMNode * | getCommonAncestorContainer () const =0
| The deepest common ancestor container of the Range's two boundary-points.
virtual void | setStart (const DOMNode *refNode, XMLSize_t offset)=0
| Sets the attributes describing the start of the Range.
virtual void | setEnd (const DOMNode *refNode, XMLSize_t offset)=0
| Sets the attributes describing the end of a Range.
virtual void | setStartBefore (const DOMNode *refNode)=0
| Sets the start position to be before a node.
virtual void | setStartAfter (const DOMNode *refNode)=0
| Sets the start position to be after a node.
virtual void | setEndBefore (const DOMNode *refNode)=0
| Sets the end position to be before a node.
virtual void | setEndAfter (const DOMNode *refNode)=0
| Sets the end of a Range to be after a node.
virtual void | collapse (bool toStart)=0
| Collapse a Range onto one of its boundary-points.
virtual void | selectNode (const DOMNode *refNode)=0
| Select a node and its contents.
virtual void | selectNodeContents (const DOMNode *refNode)=0
| Select the contents within a node.
virtual short | compareBoundaryPoints (CompareHow how, const DOMRange *sourceRange) const =0
| Compare the boundary-points of two Ranges in a document.
virtual void | deleteContents ()=0
| Removes the contents of a Range from the containing document or document fragment without returning a reference to the removed content.
virtual DOMDocumentFragment * | extractContents ()=0
| Moves the contents of a Range from the containing document or document fragment to a new DOMDocumentFragment.
virtual DOMDocumentFragment * | cloneContents () const =0
| Duplicates the contents of a Range.
virtual void | insertNode (DOMNode *newNode)=0
| Inserts a node into the DOMDocument or DOMDocumentFragment at the start of the Range.
virtual void | surroundContents (DOMNode *newParent)=0
| Reparents the contents of the Range to the given node and inserts the node at the position of the start of the Range.
virtual DOMRange * | cloneRange () const =0
| Produces a new Range whose boundary-points are equal to the boundary-points of the Range.
virtual const XMLCh * | toString () const =0
| Returns the contents of a Range as a string.
virtual void | detach ()=0
| Called to indicate that the Range is no longer in use and that the implementation may relinquish any resources associated with this Range.
Non-standard Extension
virtual void | release ()=0
| Called to indicate that this Range is no longer in use and that the implementation may relinquish any resources associated with it.

## Protected Member Functions

Hidden constructors
| DOMRange ()
| DOMRange (const DOMRange &)

## Detailed Description

See also the Document Object Model (DOM) Level 2 Traversal and Range Specification.

Since
  DOM Level 2

## Member Enumeration Documentation

## CompareHow

enum DOMRange::CompareHow

Constants CompareHow.

`START_TO_START:` Compare start boundary-point of `sourceRange` to start boundary-point of Range on which `compareBoundaryPoints` is invoked.

`START_TO_END:` Compare start boundary-point of `sourceRange` to end boundary-point of Range on which `compareBoundaryPoints` is invoked.

`END_TO_END:` Compare end boundary-point of `sourceRange` to end boundary-point of Range on which `compareBoundaryPoints` is invoked.

`END_TO_START:` Compare end boundary-point of `sourceRange` to start boundary-point of Range on which `compareBoundaryPoints` is invoked.

Since
  DOM Level 2

Enumerator
START_TO_START |
START_TO_END |
END_TO_END |
END_TO_START |

## Constructor & Destructor Documentation

## DOMRange() [1/2]

DOMRange::DOMRange | ( |  | ) |

protected

## DOMRange() [2/2]

DOMRange::DOMRange | ( | const DOMRange & |  | ) |

protected

## ~DOMRange()

virtual DOMRange::~DOMRange | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## cloneContents()

virtual DOMDocumentFragment * DOMRange::cloneContents | ( |  | ) | const

pure virtual

Duplicates the contents of a Range.

Returns
  A DOMDocumentFragment that contains content equivalent to this Range.

Exceptions

  DOMException | HIERARCHY_REQUEST_ERR: Raised if a DOMDocumentType node would be extracted into the new DOMDocumentFragment. INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## cloneRange()

virtual DOMRange * DOMRange::cloneRange | ( |  | ) | const

pure virtual

Produces a new Range whose boundary-points are equal to the boundary-points of the Range.

Returns
  The duplicated Range.

Exceptions

  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## collapse()

virtual void DOMRange::collapse | ( | bool | toStart | ) |

pure virtual

Collapse a Range onto one of its boundary-points.

Parameters

  toStart | If TRUE, collapses the Range onto its start; if FALSE, collapses it onto its end.

Exceptions

  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## compareBoundaryPoints()

virtual short DOMRange::compareBoundaryPoints | ( | CompareHow | how,
|  | const DOMRange * | sourceRange ) const

pure virtual

Compare the boundary-points of two Ranges in a document.

Parameters

  how | A code representing the type of comparison, as defined above.
  sourceRange | The `Range` on which this current `Range` is compared to.

Returns
  -1, 0 or 1 depending on whether the corresponding boundary-point of the Range is respectively before, equal to, or after the corresponding boundary-point of `sourceRange`.

Exceptions

  DOMException | WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same DOMDocument or DOMDocumentFragment. INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## deleteContents()

virtual void DOMRange::deleteContents | ( |  | ) |

pure virtual

Removes the contents of a Range from the containing document or document fragment without returning a reference to the removed content.

Exceptions

  DOMException | NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of the Range is read-only or any of the nodes that contain any of the content of the Range are read-only. INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## detach()

virtual void DOMRange::detach | ( |  | ) |

pure virtual

Called to indicate that the Range is no longer in use and that the implementation may relinquish any resources associated with this Range.

Subsequent calls to any methods or attribute getters on this Range will result in a `DOMException` being thrown with an error code of `INVALID_STATE_ERR`.

Exceptions

  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## extractContents()

virtual DOMDocumentFragment * DOMRange::extractContents | ( |  | ) |

pure virtual

Moves the contents of a Range from the containing document or document fragment to a new DOMDocumentFragment.

Returns
  A DOMDocumentFragment containing the extracted contents.

Exceptions

  DOMException | NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of the Range is read-only or any of the nodes which contain any of the content of the Range are read-only. HIERARCHY_REQUEST_ERR: Raised if a DOMDocumentType node would be extracted into the new DOMDocumentFragment. INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## getCollapsed()

virtual bool DOMRange::getCollapsed | ( |  | ) | const

pure virtual

TRUE if the Range is collapsed.

Exceptions

  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## getCommonAncestorContainer()

virtual const DOMNode * DOMRange::getCommonAncestorContainer | ( |  | ) | const

pure virtual

The deepest common ancestor container of the Range's two boundary-points.

Exceptions

  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## getEndContainer()

virtual DOMNode * DOMRange::getEndContainer | ( |  | ) | const

pure virtual

DOMNode within which the Range ends.

Exceptions

  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## getEndOffset()

virtual XMLSize_t DOMRange::getEndOffset | ( |  | ) | const

pure virtual

Offset within the ending node of the Range.

Exceptions

  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## getStartContainer()

virtual DOMNode * DOMRange::getStartContainer | ( |  | ) | const

pure virtual

DOMNode within which the Range begins.

Exceptions

  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## getStartOffset()

virtual XMLSize_t DOMRange::getStartOffset | ( |  | ) | const

pure virtual

Offset within the starting node of the Range.

Exceptions

  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

## insertNode()

virtual void DOMRange::insertNode | ( | DOMNode * | newNode | ) |

pure virtual

Inserts a node into the DOMDocument or DOMDocumentFragment at the start of the Range.

If the container is a DOMText node, this will be split at the start of the Range (as if the DOMText node's splitText method was performed at the insertion point) and the insertion will occur between the two resulting DOMText nodes. Adjacent DOMText nodes will not be automatically merged. If the node to be inserted is a DOMDocumentFragment node, the children will be inserted rather than the DOMDocumentFragment node itself.

Parameters

  newNode | The node to insert at the start of the Range

Exceptions

  DOMException

  NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of the start of the Range is read-only.
  WRONG_DOCUMENT_ERR: Raised if `newNode` and the container of the start of the Range were not created from the same document.
  HIERARCHY_REQUEST_ERR: Raised if the container of the start of the Range is of a type that does not allow children of the type of `newNode` or if `newNode` is an ancestor of the container.
  INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

  DOMRangeException | INVALID_NODE_TYPE_ERR: Raised if `newNode` is an DOMAttr, DOMEntity, DOMNotation, or DOMDocument node.

Since
  DOM Level 2

## release()

virtual void DOMRange::release | ( |  | ) |

pure virtual

Called to indicate that this Range is no longer in use and that the implementation may relinquish any resources associated with it.

(release() will call detach() where appropriate)

Access to a released object will lead to unexpected result.

## selectNode()

virtual void DOMRange::selectNode | ( | const DOMNode * | refNode | ) |

pure virtual

Select a node and its contents.

Parameters

  refNode | The node to select.

Exceptions

  DOMRangeException | INVALID_NODE_TYPE_ERR: Raised if an ancestor of `refNode` is an DOMEntity, DOMNotation or DOMDocumentType node or if `refNode` is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object. WRONG_DOCUMENT_ERR: Raised if `refNode` was created from a different document than the one that created this range.

Since
  DOM Level 2

## selectNodeContents()

virtual void DOMRange::selectNodeContents | ( | const DOMNode * | refNode | ) |

pure virtual

Select the contents within a node.

Parameters

  refNode | DOMNode to select from

Exceptions

  DOMRangeException | INVALID_NODE_TYPE_ERR: Raised if `refNode` or an ancestor of `refNode` is an DOMEntity, DOMNotation or DOMDocumentType node.
  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object. WRONG_DOCUMENT_ERR: Raised if `refNode` was created from a different document than the one that created this range.

Since
  DOM Level 2

## setEnd()

virtual void DOMRange::setEnd | ( | const DOMNode * | refNode,
|  | XMLSize_t | offset )

pure virtual

Sets the attributes describing the end of a Range.

Parameters

  refNode | The `refNode` value. This parameter must be different from `null`.
  offset | The `endOffset` value.

Exceptions

  DOMRangeException | INVALID_NODE_TYPE_ERR: Raised if `refNode` or an ancestor of `refNode` is an DOMEntity, DOMNotation, or DOMDocumentType node.

  DOMException

  INDEX_SIZE_ERR: Raised if `offset` is negative or greater than the number of child units in `refNode`. Child units are 16-bit units if `refNode` is a type of DOMCharacterData node (e.g., a DOMText or DOMComment node) or a DOMProcessingInstruction node. Child units are Nodes in all other cases.
  INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.
  WRONG_DOCUMENT_ERR: Raised if `refNode` was created from a different document than the one that created this range.

Since
  DOM Level 2

## setEndAfter()

virtual void DOMRange::setEndAfter | ( | const DOMNode * | refNode | ) |

pure virtual

Sets the end of a Range to be after a node.

Parameters

  refNode | Range ends after `refNode`.

Exceptions

  DOMRangeException | INVALID_NODE_TYPE_ERR: Raised if the root container of `refNode` is not a DOMAttr, DOMDocument or DOMDocumentFragment node or if `refNode` is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object. WRONG_DOCUMENT_ERR: Raised if `refNode` was created from a different document than the one that created this range.

Since
  DOM Level 2

## setEndBefore()

virtual void DOMRange::setEndBefore | ( | const DOMNode * | refNode | ) |

pure virtual

Sets the end position to be before a node.

Parameters

  refNode | Range ends before `refNode`

Exceptions

  DOMRangeException | INVALID_NODE_TYPE_ERR: Raised if the root container of `refNode` is not an DOMAttr, DOMDocument, or DOMDocumentFragment node or if `refNode` is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object. WRONG_DOCUMENT_ERR: Raised if `refNode` was created from a different document than the one that created this range.

Since
  DOM Level 2

## setStart()

virtual void DOMRange::setStart | ( | const DOMNode * | refNode,
|  | XMLSize_t | offset )

pure virtual

Sets the attributes describing the start of the Range.

Parameters

  refNode | The `refNode` value. This parameter must be different from `null`.
  offset | The `startOffset` value.

Exceptions

  DOMRangeException | INVALID_NODE_TYPE_ERR: Raised if `refNode` or an ancestor of `refNode` is an DOMEntity, DOMNotation, or DOMDocumentType node.

  DOMException

  INDEX_SIZE_ERR: Raised if `offset` is negative or greater than the number of child units in `refNode`. Child units are 16-bit units if `refNode` is a type of DOMCharacterData node (e.g., a DOMText or DOMComment node) or a DOMProcessingInstruction node. Child units are Nodes in all other cases.
  INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.
  WRONG_DOCUMENT_ERR: Raised if `refNode` was created from a different document than the one that created this range.

Since
  DOM Level 2

## setStartAfter()

virtual void DOMRange::setStartAfter | ( | const DOMNode * | refNode | ) |

pure virtual

Sets the start position to be after a node.

Parameters

  refNode | Range starts after `refNode`

Exceptions

  DOMRangeException | INVALID_NODE_TYPE_ERR: Raised if the root container of `refNode` is not an DOMAttr, DOMDocument, or DOMDocumentFragment node or if `refNode` is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object. WRONG_DOCUMENT_ERR: Raised if `refNode` was created from a different document than the one that created this range.

Since
  DOM Level 2

## setStartBefore()

virtual void DOMRange::setStartBefore | ( | const DOMNode * | refNode | ) |

pure virtual

Sets the start position to be before a node.

Parameters

  refNode | Range starts before `refNode`

Exceptions

  DOMRangeException | INVALID_NODE_TYPE_ERR: Raised if the root container of `refNode` is not an DOMAttr, DOMDocument, or DOMDocumentFragment node or if `refNode` is a DOMDocument, DOMDocumentFragment, DOMAttr, DOMEntity, or DOMNotation node.
  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object. WRONG_DOCUMENT_ERR: Raised if `refNode` was created from a different document than the one that created this range.

Since
  DOM Level 2

## surroundContents()

virtual void DOMRange::surroundContents | ( | DOMNode * | newParent | ) |

pure virtual

Reparents the contents of the Range to the given node and inserts the node at the position of the start of the Range.

Parameters

  newParent | The node to surround the contents with.

Exceptions

  DOMException

  NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of either boundary-point of the Range is read-only.
  WRONG_DOCUMENT_ERR: Raised if `newParent` and the container of the start of the Range were not created from the same document.
  HIERARCHY_REQUEST_ERR: Raised if the container of the start of the Range is of a type that does not allow children of the type of `newParent` or if `newParent` is an ancestor of the container or if `node` would end up with a child node of a type not allowed by the type of `node`.
  INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

  DOMRangeException | BAD_BOUNDARYPOINTS_ERR: Raised if the Range partially selects a non-text node. INVALID_NODE_TYPE_ERR: Raised if `node` is an DOMAttr, DOMEntity, DOMDocumentType, DOMNotation, DOMDocument, or DOMDocumentFragment node.

Since
  DOM Level 2

## toString()

virtual const XMLCh * DOMRange::toString | ( |  | ) | const

pure virtual

Returns the contents of a Range as a string.

This string contains only the data characters, not any markup.

Returns
  The contents of the Range.

Exceptions

  DOMException | INVALID_STATE_ERR: Raised if `detach()` has already been invoked on this object.

Since
  DOM Level 2

The documentation for this class was generated from the following file:

- DOMRange.hpp