## org.apache.axis.message
Class SOAPDocumentImpl

    java.lang.Object
      org.apache.axis.message.SOAPDocumentImpl

All Implemented Interfaces:
  org.w3c.dom.Document, org.w3c.dom.Node, java.io.Serializable

public class SOAPDocumentImpl
extends java.lang.Object
implements org.w3c.dom.Document, java.io.Serializable

SOAPDcoumentImpl implements the Document API for SOAPPART. At the moment, it again delgate the XERCES DOM Implementation Here is my argument on it: I guess that there is 3 way to implement this. - fully implement the DOM API here myself. => This is too much and duplicated work. - extends XERCES Implementation => this makes we are fixed to one Implementation - choose delgate depends on the user's parser preference => This is the practically best solution I have now

Author:
  Heejune Ahn (cityboy@tmax.co.kr)
See Also:
  Serialized Form

Field Summary
`protected org.w3c.dom.Document` `delegate`
`protected SOAPPart` `soapPart`

Fields inherited from interface org.w3c.dom.Node
`ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE`

Constructor Summary
`SOAPDocumentImpl(SOAPPart sp)` Construct the Document

Method Summary
`org.w3c.dom.Node` `appendChild(org.w3c.dom.Node newChild)`
`org.w3c.dom.Node` `cloneNode(boolean deep)`
`org.w3c.dom.Attr` `createAttribute(java.lang.String name)`
`org.w3c.dom.Attr` `createAttributeNS(java.lang.String namespaceURI, java.lang.String qualifiedName)` Attribute is not particularly dealt with in SAAJ.
`org.w3c.dom.CDATASection` `createCDATASection(java.lang.String data)` Creates a `CDATASection` node whose value is the specified string.
`org.w3c.dom.Comment` `createComment(java.lang.String data)` Creates a `Comment` node given the specified string.
`org.w3c.dom.DocumentFragment` `createDocumentFragment()` Creates an empty `DocumentFragment` object.
`org.w3c.dom.Element` `createElement(java.lang.String tagName)` based on the tagName, we will make different kind SOAP Elements Instance Is really we can determine the Type by the Tagname???
`org.w3c.dom.Element` `createElementNS(java.lang.String namespaceURI, java.lang.String qualifiedName)` Return SOAPElements (what if they want SOAPEnvelope or Header/Body?)
`org.w3c.dom.EntityReference` `createEntityReference(java.lang.String name)`
`org.w3c.dom.ProcessingInstruction` `createProcessingInstruction(java.lang.String target, java.lang.String data)` Creates a `ProcessingInstruction` node given the specified name and data strings.
`org.w3c.dom.Text` `createTextNode(java.lang.String data)` Creates a `Text` node given the specified string.
`org.w3c.dom.NamedNodeMap` `getAttributes()`
`org.w3c.dom.NodeList` `getChildNodes()`
`org.w3c.dom.DocumentType` `getDoctype()`
`org.w3c.dom.Element` `getDocumentElement()` should not be called, the method will be handled in SOAPPart
`org.w3c.dom.Element` `getElementById(java.lang.String elementId)` Returns the `Element` whose `ID` is given by `elementId`.
`org.w3c.dom.NodeList` `getElementsByTagName(java.lang.String localName)` search the SOAPPart in order of SOAPHeader and SOAPBody for the requested Element name
`org.w3c.dom.NodeList` `getElementsByTagNameNS(java.lang.String namespaceURI, java.lang.String localName)` search the SOAPPart in order of SOAPHeader and SOAPBody for the requested Element name
`org.w3c.dom.Node` `getFirstChild()` Do we have to count the Attributes as node ????
`org.w3c.dom.DOMImplementation` `getImplementation()`
`org.w3c.dom.Node` `getLastChild()`
`java.lang.String` `getLocalName()`
`java.lang.String` `getNamespaceURI()`
`org.w3c.dom.Node` `getNextSibling()`
`java.lang.String` `getNodeName()` Node Implementation
`short` `getNodeType()` override it in sub-classes
`java.lang.String` `getNodeValue()`
`org.w3c.dom.Document` `getOwnerDocument()` we have to have a link to them...
`org.w3c.dom.Node` `getParentNode()`
`java.lang.String` `getPrefix()`
`org.w3c.dom.Node` `getPreviousSibling()`
`boolean` `hasAttributes()`
`boolean` `hasChildNodes()`
`org.w3c.dom.Node` `importNode(org.w3c.dom.Node importedNode, boolean deep)`
`org.w3c.dom.Node` `insertBefore(org.w3c.dom.Node newChild, org.w3c.dom.Node refChild)`
`boolean` `isSupported(java.lang.String feature, java.lang.String version)`
`void` `normalize()`
`org.w3c.dom.Node` `removeChild(org.w3c.dom.Node oldChild)`
`org.w3c.dom.Node` `replaceChild(org.w3c.dom.Node newChild, org.w3c.dom.Node oldChild)`
`void` `setNamespaceURI(java.lang.String nsURI)`
`void` `setNodeValue(java.lang.String nodeValue)`
`void` `setPrefix(java.lang.String prefix)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### delegate

    protected org.w3c.dom.Document delegate

### soapPart

    protected SOAPPart soapPart

Constructor Detail

### SOAPDocumentImpl

    public SOAPDocumentImpl(SOAPPart sp)

  Construct the Document

Parameters:
  `sp` - the soap part

Method Detail

### getDoctype

    public org.w3c.dom.DocumentType getDoctype()

  Specified by:
    `getDoctype` in interface `org.w3c.dom.Document`
  Returns:

### getImplementation

    public org.w3c.dom.DOMImplementation getImplementation()

  Specified by:
    `getImplementation` in interface `org.w3c.dom.Document`

### getDocumentElement

    public org.w3c.dom.Element getDocumentElement()

  should not be called, the method will be handled in SOAPPart

  Specified by:
    `getDocumentElement` in interface `org.w3c.dom.Document`
  Returns:

### createElement

    public org.w3c.dom.Element createElement(java.lang.String tagName)
                                      throws org.w3c.dom.DOMException

  based on the tagName, we will make different kind SOAP Elements Instance Is really we can determine the Type by the Tagname???

  Specified by:
    `createElement` in interface `org.w3c.dom.Document`
  Parameters:
    `tagName` -
  Returns:
    @throws DOMException
  Throws:
    `org.w3c.dom.DOMException`

### createDocumentFragment

    public org.w3c.dom.DocumentFragment createDocumentFragment()

  Creates an empty `DocumentFragment` object. @todo not implemented yet

  Specified by:
    `createDocumentFragment` in interface `org.w3c.dom.Document`
  Returns:
    A new `DocumentFragment`.

### createTextNode

    public org.w3c.dom.Text createTextNode(java.lang.String data)

  Creates a `Text` node given the specified string.

  Specified by:
    `createTextNode` in interface `org.w3c.dom.Document`
  Parameters:
    `data` - The data for the node.
  Returns:
    The new `Text` object.

### createComment

    public org.w3c.dom.Comment createComment(java.lang.String data)

  Creates a `Comment` node given the specified string.

  Specified by:
    `createComment` in interface `org.w3c.dom.Document`
  Parameters:
    `data` - The data for the node.
  Returns:
    The new `Comment` object.

### createCDATASection

    public org.w3c.dom.CDATASection createCDATASection(java.lang.String data)
                                                throws org.w3c.dom.DOMException

  Creates a `CDATASection` node whose value is the specified string.

  Specified by:
    `createCDATASection` in interface `org.w3c.dom.Document`
  Parameters:
    `data` - The data for the `CDATASection` contents.
  Returns:
    The new `CDATASection` object.
  Throws:
    `org.w3c.dom.DOMException` - NOT_SUPPORTED_ERR: Raised if this document is an HTML document.

### createProcessingInstruction

    public org.w3c.dom.ProcessingInstruction createProcessingInstruction(java.lang.String target,
                                                                         java.lang.String data)
                                                                  throws org.w3c.dom.DOMException

  Creates a `ProcessingInstruction` node given the specified name and data strings.

  Specified by:
    `createProcessingInstruction` in interface `org.w3c.dom.Document`
  Parameters:
    `target` - The target part of the processing instruction.
    `data` - The data for the node.
  Returns:
    The new `ProcessingInstruction` object.
  Throws:
    `org.w3c.dom.DOMException` - INVALID_CHARACTER_ERR: Raised if the specified target contains an illegal character.
    NOT_SUPPORTED_ERR: Raised if this document is an HTML document.

### createAttribute

    public org.w3c.dom.Attr createAttribute(java.lang.String name)
                                     throws org.w3c.dom.DOMException

  Specified by:
    `createAttribute` in interface `org.w3c.dom.Document`
  Throws:
    `org.w3c.dom.DOMException`

### createEntityReference

    public org.w3c.dom.EntityReference createEntityReference(java.lang.String name)
                                                      throws org.w3c.dom.DOMException

  Specified by:
    `createEntityReference` in interface `org.w3c.dom.Document`
  Parameters:
    `name` -
  Returns:
    @throws DOMException
  Throws:
    `org.w3c.dom.DOMException`

### importNode

    public org.w3c.dom.Node importNode(org.w3c.dom.Node importedNode,
                                       boolean deep)
                                throws org.w3c.dom.DOMException

  Specified by:
    `importNode` in interface `org.w3c.dom.Document`
  Throws:
    `org.w3c.dom.DOMException`

### createElementNS

    public org.w3c.dom.Element createElementNS(java.lang.String namespaceURI,
                                               java.lang.String qualifiedName)
                                        throws org.w3c.dom.DOMException

  Return SOAPElements (what if they want SOAPEnvelope or Header/Body?)

  Specified by:
    `createElementNS` in interface `org.w3c.dom.Document`
  Parameters:
    `namespaceURI` -
    `qualifiedName` -
  Returns:
    @throws DOMException
  Throws:
    `org.w3c.dom.DOMException`

### createAttributeNS

    public org.w3c.dom.Attr createAttributeNS(java.lang.String namespaceURI,
                                              java.lang.String qualifiedName)
                                       throws org.w3c.dom.DOMException

  Attribute is not particularly dealt with in SAAJ.

  Specified by:
    `createAttributeNS` in interface `org.w3c.dom.Document`
  Throws:
    `org.w3c.dom.DOMException`

### getElementsByTagNameNS

    public org.w3c.dom.NodeList getElementsByTagNameNS(java.lang.String namespaceURI,
                                                       java.lang.String localName)

  search the SOAPPart in order of SOAPHeader and SOAPBody for the requested Element name

  Specified by:
    `getElementsByTagNameNS` in interface `org.w3c.dom.Document`

### getElementsByTagName

    public org.w3c.dom.NodeList getElementsByTagName(java.lang.String localName)

  search the SOAPPart in order of SOAPHeader and SOAPBody for the requested Element name

  Specified by:
    `getElementsByTagName` in interface `org.w3c.dom.Document`

### getElementById

    public org.w3c.dom.Element getElementById(java.lang.String elementId)

  Returns the `Element` whose `ID` is given by `elementId`. If no such element exists, returns `null`. Behavior is not defined if more than one element has this `ID`. The DOM implementation must have information that says which attributes are of type ID. Attributes with the name "ID" are not of type ID unless so defined. Implementations that do not know whether attributes are of type ID or not are expected to return `null`.

  Specified by:
    `getElementById` in interface `org.w3c.dom.Document`
  Parameters:
    `elementId` - The unique `id` value for an element.
  Returns:
    The matching element.
  Since:
    DOM Level 2

### getNodeName

    public java.lang.String getNodeName()

  Node Implementation

  Specified by:
    `getNodeName` in interface `org.w3c.dom.Node`

### getNodeValue

    public java.lang.String getNodeValue()
                                  throws org.w3c.dom.DOMException

  Specified by:
    `getNodeValue` in interface `org.w3c.dom.Node`
  Throws:
    `org.w3c.dom.DOMException`

### setNodeValue

    public void setNodeValue(java.lang.String nodeValue)
                      throws org.w3c.dom.DOMException

  Specified by:
    `setNodeValue` in interface `org.w3c.dom.Node`
  Throws:
    `org.w3c.dom.DOMException`

### getNodeType

    public short getNodeType()

  override it in sub-classes

  Specified by:
    `getNodeType` in interface `org.w3c.dom.Node`
  Returns:

### getParentNode

    public org.w3c.dom.Node getParentNode()

  Specified by:
    `getParentNode` in interface `org.w3c.dom.Node`

### getChildNodes

    public org.w3c.dom.NodeList getChildNodes()

  Specified by:
    `getChildNodes` in interface `org.w3c.dom.Node`

### getFirstChild

    public org.w3c.dom.Node getFirstChild()

  Do we have to count the Attributes as node ????

  Specified by:
    `getFirstChild` in interface `org.w3c.dom.Node`
  Returns:

### getLastChild

    public org.w3c.dom.Node getLastChild()

  Specified by:
    `getLastChild` in interface `org.w3c.dom.Node`
  Returns:

### getPreviousSibling

    public org.w3c.dom.Node getPreviousSibling()

  Specified by:
    `getPreviousSibling` in interface `org.w3c.dom.Node`

### getNextSibling

    public org.w3c.dom.Node getNextSibling()

  Specified by:
    `getNextSibling` in interface `org.w3c.dom.Node`

### getAttributes

    public org.w3c.dom.NamedNodeMap getAttributes()

  Specified by:
    `getAttributes` in interface `org.w3c.dom.Node`

### getOwnerDocument

    public org.w3c.dom.Document getOwnerDocument()

  we have to have a link to them...

  Specified by:
    `getOwnerDocument` in interface `org.w3c.dom.Node`

### insertBefore

    public org.w3c.dom.Node insertBefore(org.w3c.dom.Node newChild,
                                         org.w3c.dom.Node refChild)
                                  throws org.w3c.dom.DOMException

  Specified by:
    `insertBefore` in interface `org.w3c.dom.Node`
  Throws:
    `org.w3c.dom.DOMException`

### replaceChild

    public org.w3c.dom.Node replaceChild(org.w3c.dom.Node newChild,
                                         org.w3c.dom.Node oldChild)
                                  throws org.w3c.dom.DOMException

  Specified by:
    `replaceChild` in interface `org.w3c.dom.Node`
  Throws:
    `org.w3c.dom.DOMException`

### removeChild

    public org.w3c.dom.Node removeChild(org.w3c.dom.Node oldChild)
                                 throws org.w3c.dom.DOMException

  Specified by:
    `removeChild` in interface `org.w3c.dom.Node`
  Throws:
    `org.w3c.dom.DOMException`

### appendChild

    public org.w3c.dom.Node appendChild(org.w3c.dom.Node newChild)
                                 throws org.w3c.dom.DOMException

  Specified by:
    `appendChild` in interface `org.w3c.dom.Node`
  Throws:
    `org.w3c.dom.DOMException`

### hasChildNodes

    public boolean hasChildNodes()

  Specified by:
    `hasChildNodes` in interface `org.w3c.dom.Node`

### cloneNode

    public org.w3c.dom.Node cloneNode(boolean deep)

  Specified by:
    `cloneNode` in interface `org.w3c.dom.Node`

### normalize

    public void normalize()

  Specified by:
    `normalize` in interface `org.w3c.dom.Node`

### isSupported

    public boolean isSupported(java.lang.String feature,
                               java.lang.String version)

  Specified by:
    `isSupported` in interface `org.w3c.dom.Node`

### getPrefix

    public java.lang.String getPrefix()

  Specified by:
    `getPrefix` in interface `org.w3c.dom.Node`

### setPrefix

    public void setPrefix(java.lang.String prefix)

  Specified by:
    `setPrefix` in interface `org.w3c.dom.Node`

### getNamespaceURI

    public java.lang.String getNamespaceURI()

  Specified by:
    `getNamespaceURI` in interface `org.w3c.dom.Node`

### setNamespaceURI

    public void setNamespaceURI(java.lang.String nsURI)

### getLocalName

    public java.lang.String getLocalName()

  Specified by:
    `getLocalName` in interface `org.w3c.dom.Node`

### hasAttributes

    public boolean hasAttributes()

  Specified by:
    `hasAttributes` in interface `org.w3c.dom.Node`

Copyright © 2005 Apache Web Services Project. All Rights Reserved.