org.apache.xerces.dom
Class DocumentTypeImpl

java.lang.Object
  |
  +--org.apache.xerces.dom.NodeImpl
        |
        +--org.apache.xerces.dom.ChildNode
              |
              +--org.apache.xerces.dom.ParentNode
                    |
                    +--org.apache.xerces.dom.DocumentTypeImpl
All Implemented Interfaces:
java.lang.Cloneable, org.w3c.dom.DocumentType, org.w3c.dom.events.EventTarget, org.w3c.dom.Node, org.w3c.dom.NodeList, java.io.Serializable
Direct Known Subclasses:
DeferredDocumentTypeImpl

public class DocumentTypeImpl
extends ParentNode
implements org.w3c.dom.DocumentType

This class represents a Document Type declaraction in the document itself, not a Document Type Definition (DTD). An XML document may (or may not) have such a reference.

DocumentType is an Extended DOM feature, used in XML documents but not in HTML.

Note that Entities and Notations are no longer children of the DocumentType, but are parentless nodes hung only in their appropriate NamedNodeMaps.

This area is UNDERSPECIFIED IN REC-DOM-Level-1-19981001 Most notably, absolutely no provision was made for storing and using Element and Attribute information. Nor was the linkage between Entities and Entity References nailed down solidly.

INTERNAL:

Usage of this class is not supported. It may be altered or removed at any time.

Since:
PR-DOM-Level-1-19980818.
Version:
$Id: DocumentTypeImpl.java 699892 2008-09-28 21:08:27Z mrglavas $
Author:
Arnaud Le Hors, IBM, Joe Kesselman, IBM, Andy Clark, IBM
See Also:
Serialized Form

Field Summary
protected  NamedNodeMapImpl elements
          Elements.
protected  NamedNodeMapImpl entities
          Entities.
protected  java.lang.String internalSubset
           
protected  java.lang.String name
          Document type name.
protected  NamedNodeMapImpl notations
          Notations.
protected  java.lang.String publicID
           
protected  java.lang.String systemID
           
 
Fields inherited from class org.apache.xerces.dom.ParentNode
firstChild, fNodeListCache, ownerDocument
 
Fields inherited from class org.apache.xerces.dom.ChildNode
nextSibling, previousSibling
 
Fields inherited from class org.apache.xerces.dom.NodeImpl
DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_IS_CONTAINED, DOCUMENT_POSITION_PRECEDING, ELEMENT_DEFINITION_NODE, FIRSTCHILD, flags, HASSTRING, ID, IGNORABLEWS, NORMALIZED, OWNED, ownerNode, READONLY, SPECIFIED, SYNCCHILDREN, SYNCDATA, TREE_POSITION_ANCESTOR, TREE_POSITION_DESCENDANT, TREE_POSITION_DISCONNECTED, TREE_POSITION_EQUIVALENT, TREE_POSITION_FOLLOWING, TREE_POSITION_PRECEDING, TREE_POSITION_SAME_NODE
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Constructor Summary
DocumentTypeImpl(CoreDocumentImpl ownerDocument, java.lang.String name)
          Factory method for creating a document type node.
DocumentTypeImpl(CoreDocumentImpl ownerDocument, java.lang.String qualifiedName, java.lang.String publicID, java.lang.String systemID)
          Factory method for creating a document type node.
 
Method Summary
 org.w3c.dom.Node cloneNode(boolean deep)
          Clones the node.
 org.w3c.dom.NamedNodeMap getElements()
          NON-DOM: Access the collection of ElementDefinitions.
 org.w3c.dom.NamedNodeMap getEntities()
          Access the collection of general Entities, both external and internal, defined in the DTD.
 java.lang.String getInternalSubset()
          Introduced in DOM Level 2.
 java.lang.String getName()
          Name of this document type.
 java.lang.String getNodeName()
          Returns the document type name
protected  int getNodeNumber()
          NON-DOM Get the number associated with this doctype.
 short getNodeType()
          A short integer indicating what type of node this is.
 org.w3c.dom.NamedNodeMap getNotations()
          Access the collection of Notations defined in the DTD.
 java.lang.String getPublicId()
          Introduced in DOM Level 2.
 java.lang.String getSystemId()
          Introduced in DOM Level 2.
 java.lang.String getTextContent()
          This attribute returns the text content of this node and its descendants.
 java.lang.Object getUserData(java.lang.String key)
          Retrieves the object associated to a key on a this node.
protected  java.util.Hashtable getUserDataRecord()
           
 boolean isEqualNode(org.w3c.dom.Node arg)
          DOM Level 3 WD- Experimental.
 void setInternalSubset(java.lang.String internalSubset)
          NON-DOM.
protected  void setOwnerDocument(CoreDocumentImpl doc)
          NON-DOM set the ownerDocument of this node and its children
 void setReadOnly(boolean readOnly, boolean deep)
          NON-DOM: Subclassed to flip the entities' and notations' readonly switch as well.
 void setTextContent(java.lang.String textContent)
          This attribute returns the text content of this node and its descendants.
 java.lang.Object setUserData(java.lang.String key, java.lang.Object data, org.w3c.dom.UserDataHandler handler)
          Associate an object to a key on this node.
 
Methods inherited from class org.apache.xerces.dom.ParentNode
getChildNodes, getChildNodesUnoptimized, getFirstChild, getLastChild, getLength, getOwnerDocument, hasChildNodes, insertBefore, item, normalize, removeChild, replaceChild, synchronizeChildren
 
Methods inherited from class org.apache.xerces.dom.ChildNode
getNextSibling, getParentNode, getPreviousSibling
 
Methods inherited from class org.apache.xerces.dom.NodeImpl
addEventListener, appendChild, changed, changes, compareDocumentPosition, compareTreePosition, dispatchEvent, getAttributes, getBaseURI, getContainer, getFeature, getLocalName, getNamespaceURI, getNodeValue, getPrefix, getReadOnly, getUserData, hasAttributes, isDefaultNamespace, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, needsSyncChildren, removeEventListener, setNodeValue, setPrefix, setUserData, synchronizeData, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.w3c.dom.Node
appendChild, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix
 

Field Detail

name

protected java.lang.String name
Document type name.

entities

protected NamedNodeMapImpl entities
Entities.

notations

protected NamedNodeMapImpl notations
Notations.

elements

protected NamedNodeMapImpl elements
Elements.

publicID

protected java.lang.String publicID

systemID

protected java.lang.String systemID

internalSubset

protected java.lang.String internalSubset
Constructor Detail

DocumentTypeImpl

public DocumentTypeImpl(CoreDocumentImpl ownerDocument,
                        java.lang.String name)
Factory method for creating a document type node.

DocumentTypeImpl

public DocumentTypeImpl(CoreDocumentImpl ownerDocument,
                        java.lang.String qualifiedName,
                        java.lang.String publicID,
                        java.lang.String systemID)
Factory method for creating a document type node.
Method Detail

getPublicId

public java.lang.String getPublicId()
Introduced in DOM Level 2.

Return the public identifier of this Document type.

Specified by:
getPublicId in interface org.w3c.dom.DocumentType
Since:
WD-DOM-Level-2-19990923

getSystemId

public java.lang.String getSystemId()
Introduced in DOM Level 2.

Return the system identifier of this Document type.

Specified by:
getSystemId in interface org.w3c.dom.DocumentType
Since:
WD-DOM-Level-2-19990923

setInternalSubset

public void setInternalSubset(java.lang.String internalSubset)
NON-DOM.

Set the internalSubset given as a string.


getInternalSubset

public java.lang.String getInternalSubset()
Introduced in DOM Level 2.

Return the internalSubset given as a string.

Specified by:
getInternalSubset in interface org.w3c.dom.DocumentType
Since:
WD-DOM-Level-2-19990923

getNodeType

public short getNodeType()
A short integer indicating what type of node this is. The named constants for this value are defined in the org.w3c.dom.Node interface.
Specified by:
getNodeType in interface org.w3c.dom.Node
Overrides:
getNodeType in class NodeImpl

getNodeName

public java.lang.String getNodeName()
Returns the document type name
Specified by:
getNodeName in interface org.w3c.dom.Node
Overrides:
getNodeName in class NodeImpl

cloneNode

public org.w3c.dom.Node cloneNode(boolean deep)
Clones the node.
Specified by:
cloneNode in interface org.w3c.dom.Node
Overrides:
cloneNode in class ParentNode
Following copied from interface: org.w3c.dom.Node
Parameters:
deep - If true, recursively clone the subtree under the specified node; if false, clone only the node itself (and its attributes, if it is an Element).
Returns:
The duplicate node.

getTextContent

public java.lang.String getTextContent()
                                throws org.w3c.dom.DOMException
Description copied from interface: org.w3c.dom.Node
This attribute returns the text content of this node and its descendants. When it is defined to be null, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or null, replaced by a single Text node containing the string this attribute is set to.
On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute Text.isElementContentWhitespace). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content.
The string returned is made of the text content of this node depending on its type, as defined below:
Node type Content
ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE concatenation of the textContent attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.
TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE nodeValue
DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE null
Specified by:
getTextContent in interface org.w3c.dom.Node
Overrides:
getTextContent in class ParentNode
Following copied from interface: org.w3c.dom.Node
Throws:
org.w3c.dom.DOMException - DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in a DOMString variable on the implementation platform.

setTextContent

public void setTextContent(java.lang.String textContent)
                    throws org.w3c.dom.DOMException
Description copied from interface: org.w3c.dom.Node
This attribute returns the text content of this node and its descendants. When it is defined to be null, setting it has no effect. On setting, any possible children this node may have are removed and, if it the new string is not empty or null, replaced by a single Text node containing the string this attribute is set to.
On getting, no serialization is performed, the returned string does not contain any markup. No whitespace normalization is performed and the returned string does not contain the white spaces in element content (see the attribute Text.isElementContentWhitespace). Similarly, on setting, no parsing is performed either, the input string is taken as pure textual content.
The string returned is made of the text content of this node depending on its type, as defined below:
Node type Content
ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, DOCUMENT_FRAGMENT_NODE concatenation of the textContent attribute value of every child node, excluding COMMENT_NODE and PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the node has no children.
TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE nodeValue
DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE null
Specified by:
setTextContent in interface org.w3c.dom.Node
Overrides:
setTextContent in class ParentNode
Following copied from interface: org.w3c.dom.Node
Throws:
org.w3c.dom.DOMException - NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.

isEqualNode

public boolean isEqualNode(org.w3c.dom.Node arg)
DOM Level 3 WD- Experimental. Override inherited behavior from ParentNodeImpl to support deep equal.
Specified by:
isEqualNode in interface org.w3c.dom.Node
Overrides:
isEqualNode in class ParentNode
Following copied from interface: org.w3c.dom.Node
Parameters:
arg - The node to compare equality with.
Returns:
Returns true if the nodes are equal, false otherwise.

setOwnerDocument

protected void setOwnerDocument(CoreDocumentImpl doc)
NON-DOM set the ownerDocument of this node and its children
Overrides:
setOwnerDocument in class ParentNode

getNodeNumber

protected int getNodeNumber()
NON-DOM Get the number associated with this doctype.
Overrides:
getNodeNumber in class NodeImpl

getName

public java.lang.String getName()
Name of this document type. If we loaded from a DTD, this should be the name immediately following the DOCTYPE keyword.
Specified by:
getName in interface org.w3c.dom.DocumentType

getEntities

public org.w3c.dom.NamedNodeMap getEntities()
Access the collection of general Entities, both external and internal, defined in the DTD. For example, in:

   <!doctype example SYSTEM "ex.dtd" [
     <!ENTITY foo "foo">
     <!ENTITY bar "bar">
     <!ENTITY % baz "baz">
     ]>
 

The Entities map includes foo and bar, but not baz. It is promised that only Nodes which are Entities will exist in this NamedNodeMap.

For HTML, this will always be null.

Note that "built in" entities such as & and < should be converted to their actual characters before being placed in the DOM's contained text, and should be converted back when the DOM is rendered as XML or HTML, and hence DO NOT appear here.

Specified by:
getEntities in interface org.w3c.dom.DocumentType

getNotations

public org.w3c.dom.NamedNodeMap getNotations()
Access the collection of Notations defined in the DTD. A notation declares, by name, the format of an XML unparsed entity or is used to formally declare a Processing Instruction target.
Specified by:
getNotations in interface org.w3c.dom.DocumentType

setReadOnly

public void setReadOnly(boolean readOnly,
                        boolean deep)
NON-DOM: Subclassed to flip the entities' and notations' readonly switch as well.
Overrides:
setReadOnly in class ParentNode
See Also:
NodeImpl.setReadOnly(boolean, boolean)

getElements

public org.w3c.dom.NamedNodeMap getElements()
NON-DOM: Access the collection of ElementDefinitions.
See Also:
ElementDefinitionImpl

setUserData

public java.lang.Object setUserData(java.lang.String key,
                                    java.lang.Object data,
                                    org.w3c.dom.UserDataHandler handler)
Description copied from interface: org.w3c.dom.Node
Associate an object to a key on this node. The object can later be retrieved from this node by calling getUserData with the same key.
Specified by:
setUserData in interface org.w3c.dom.Node
Overrides:
setUserData in class NodeImpl
Following copied from interface: org.w3c.dom.Node
Parameters:
key - The key to associate the object to.
data - The object to associate to the given key, or null to remove any existing association to that key.
handler - The handler to associate to that key, or null.
Returns:
Returns the DOMUserData previously associated to the given key on this node, or null if there was none.

getUserData

public java.lang.Object getUserData(java.lang.String key)
Description copied from interface: org.w3c.dom.Node
Retrieves the object associated to a key on a this node. The object must first have been set to this node by calling setUserData with the same key.
Specified by:
getUserData in interface org.w3c.dom.Node
Overrides:
getUserData in class NodeImpl
Following copied from interface: org.w3c.dom.Node
Parameters:
key - The key the object is associated to.
Returns:
Returns the DOMUserData associated to the given key on this node, or null if there was none.

getUserDataRecord

protected java.util.Hashtable getUserDataRecord()
Overrides:
getUserDataRecord in class NodeImpl


Copyright 1999-2018 The Apache Software Foundation. All Rights Reserved.