Package org.apache.axiom.om

# Interface OMNode

All Superinterfaces:
  `OMInformationItem`, `OMSerializable`

All Known Subinterfaces:
  `OMComment`, `OMDocType`, `OMElement`, `OMEntityReference`, `OMProcessingInstruction`, `OMSourcedElement`, `OMText`, `SOAPBody`, `SOAPEnvelope`, `SOAPFault`, `SOAPFaultClassifier`, `SOAPFaultCode`, `SOAPFaultDetail`, `SOAPFaultNode`, `SOAPFaultReason`, `SOAPFaultRole`, `SOAPFaultSubCode`, `SOAPFaultText`, `SOAPFaultValue`, `SOAPHeader`, `SOAPHeaderBlock`

public interface OMNode extends OMSerializable
Defines the base interface used by most of the XML object model within Axis.

This tree model for XML captures the idea of deferring the construction of child nodes until they are needed. The `isComplete` function identifies whether or not a particular node has been fully parsed. A node may not be fully parsed, for example, if all of the children of an element have not yet been parsed.

In comparison to DOM, in this model, you will not find document fragments, or entities. In addition, while `OMDocument` and `OMAttribute` exist, neither is an extension of `OMNode`.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final short`
  `CDATA_SECTION_NODE`
  The node is a `CDATASection`.
  `static final short`
  `COMMENT_NODE`
  The node is a `Comment`.
  `static final short`
  `DTD_NODE`
  This node is a `DTD`.
  `static final short`
  `ELEMENT_NODE`
  The node is an `Element`.
  `static final short`
  `ENTITY_REFERENCE_NODE`
  This node is an `Entity Reference`.
  `static final short`
  `PI_NODE`
  This node is a `ProcessingInstruction`.
  `static final short`
  `SPACE_NODE`
  This node represents white space.
  `static final short`
  `TEXT_NODE`
  The node is a `Text` node.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `buildWithAttachments()`
  Builds itself with the OMText binary content.
  `OMNode`
  `detach()`
  Removes a node (and all of its children) from its containing parent.
  `void`
  `discard()`
  Discards a node.
  `OMNode`
  `getNextOMSibling()`
  Returns the next sibling in document order.
  `OMContainer`
  `getParent()`
  Returns the parent containing node.
  `OMNode`
  `getPreviousOMSibling()`
  Gets the previous sibling.
  `int`
  `getType()`
  Returns the type of node.
  `void`
  `insertSiblingAfter(OMNode sibling)`
  Inserts a new sibling after the current node.
  `void`
  `insertSiblingBefore(OMNode sibling)`
  Inserts a sibling just before the current node.

  ### Methods inherited from interface org.apache.axiom.om.OMInformationItem

  `clone, getOMFactory`

  ### Methods inherited from interface org.apache.axiom.om.OMSerializable

  `build, close, isComplete, serialize, serialize, serializeAndConsume`

- ## Field Details

  - ### ELEMENT_NODE

    static final short ELEMENT_NODE
    The node is an `Element`.
    See Also:
      - `getType()`
      - Constant Field Values

  - ### TEXT_NODE

    static final short TEXT_NODE
    The node is a `Text` node.
    See Also:
      - `getType()`
      - Constant Field Values

  - ### CDATA_SECTION_NODE

    static final short CDATA_SECTION_NODE
    The node is a `CDATASection`.
    See Also:
      - `getType()`
      - Constant Field Values

  - ### COMMENT_NODE

    static final short COMMENT_NODE
    The node is a `Comment`.
    See Also:
      - `getType()`
      - Constant Field Values

  - ### DTD_NODE

    static final short DTD_NODE
    This node is a `DTD`.
    See Also:
      - `getType()`
      - Constant Field Values

  - ### PI_NODE

    static final short PI_NODE
    This node is a `ProcessingInstruction`.
    See Also:
      - `getType()`
      - Constant Field Values

  - ### ENTITY_REFERENCE_NODE

    static final short ENTITY_REFERENCE_NODE
    This node is an `Entity Reference`.
    See Also:
      - `getType()`
      - Constant Field Values

  - ### SPACE_NODE

    static final short SPACE_NODE
    This node represents white space.
    See Also:
      - `getType()`
      - Constant Field Values

- ## Method Details

  - ### getParent

    OMContainer getParent()
    Returns the parent containing node.

    Returns the parent container, which may be either an `OMDocument` or `OMElement`.

    Returns:
      The `OMContainer` of the node.

  - ### getNextOMSibling

    OMNode getNextOMSibling() throws OMException
    Returns the next sibling in document order.
    Returns:
      Returns the next sibling in document order.
    Throws:
      `OMException`

  - ### detach

    OMNode detach() throws OMException
    Removes a node (and all of its children) from its containing parent.

    Removes a node from its parent. Please note that this will not handle the namespaces. For example, if there you have used a namespace within the detaching node and which is defined outside the detaching node, user has to handle it manually.

    Returns:
      The detached node. This is always the instance on which this method is invoked.
    Throws:
      `OMException`

  - ### discard

    void discard() throws OMException
    Discards a node.

    Discard goes to the parser level and if the element is not completely built, then it will be completely skipped at the parser level.

    Throws:
      `OMException`

  - ### insertSiblingAfter

    void insertSiblingAfter(OMNode sibling) throws OMException
    Inserts a new sibling after the current node. The current node must have a parent for this operation to succeed. If the node to be inserted has a parent, then it will first be detached.
    Parameters:
      `sibling` - The node that will be added after the current node.
    Throws:
      `OMException` - if the current node has no parent

  - ### insertSiblingBefore

    void insertSiblingBefore(OMNode sibling) throws OMException
    Inserts a sibling just before the current node. The current node must have a parent for this operation to succeed. If the node to be inserted has a parent, then it will first be detached.
    Parameters:
      `sibling` - The node that will be added before the current node.
    Throws:
      `OMException` - if the current node has no parent

  - ### getType

    int getType()
    Returns the type of node.
    Returns:
      Returns one of `ELEMENT_NODE`, `TEXT_NODE`, `CDATA_SECTION_NODE`, `COMMENT_NODE`, `DTD_NODE`, `PI_NODE`, `ENTITY_REFERENCE_NODE` or `SPACE_NODE`.

  - ### getPreviousOMSibling

    OMNode getPreviousOMSibling()
    Gets the previous sibling.
    Returns:
      Returns node.

  - ### buildWithAttachments

    void buildWithAttachments()
    Builds itself with the OMText binary content. AXIOM supports two levels of deffered building. First is deffered building of AXIOM using StAX. Second level is the deffered building of attachments. AXIOM reads in the attachements from the stream only when user asks by calling getDataHandler(). build() method builds the OM without the attachments. buildAll() builds the OM together with attachement data. This becomes handy when user wants to free the input stream.