Class DocumentTypeImpl
- java.lang.Object
-
- org.htmlunit.cyberneko.xerces.dom.NodeImpl
-
- org.htmlunit.cyberneko.xerces.dom.ChildNode
-
- org.htmlunit.cyberneko.xerces.dom.ParentNode
-
- org.htmlunit.cyberneko.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
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.
-
-
Field Summary
Fields Modifier and Type Field Description private int
doctypeNumber_
private NamedNodeMapImpl
elements_
Elements.private NamedNodeMapImpl
entities_
Entities.private java.lang.String
internalSubset_
private java.lang.String
name_
Document type name.private NamedNodeMapImpl
notations_
Notations.private java.lang.String
publicID_
private java.lang.String
systemID_
-
Fields inherited from class org.htmlunit.cyberneko.xerces.dom.ParentNode
firstChild, fNodeListCache, ownerDocument
-
Fields inherited from class org.htmlunit.cyberneko.xerces.dom.ChildNode
nextSibling_, previousSibling_
-
Fields inherited from class org.htmlunit.cyberneko.xerces.dom.NodeImpl
DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_IS_CONTAINED, DOCUMENT_POSITION_PRECEDING, FIRSTCHILD, HASSTRING, ID, NORMALIZED, OWNED, ownerNode_, READONLY, SPECIFIED, SYNCCHILDREN
-
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
Constructors Constructor Description 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)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.w3c.dom.Node
cloneNode(boolean deep)
Returns a duplicate of a given node.org.w3c.dom.NamedNodeMap
getElements()
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()
the name of this node.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.boolean
isEqualNode(org.w3c.dom.Node arg)
Tests whether two nodes are equal.void
setInternalSubset(java.lang.String internalSubset)
protected void
setOwnerDocument(CoreDocumentImpl doc)
NON-DOM set the ownerDocument of this node and its childrenvoid
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.htmlunit.cyberneko.xerces.dom.ParentNode
checkNormalizationAfterInsert, checkNormalizationAfterRemove, getChildNodes, getChildNodesUnoptimized, getFirstChild, getLastChild, getLength, getOwnerDocument, getTextContent, hasChildNodes, hasTextContent, insertBefore, internalInsertBefore, internalRemoveChild, item, lastChild, nodeListGetLength, nodeListItem, ownerDocument, removeChild, replaceChild, synchronizeChildren
-
Methods inherited from class org.htmlunit.cyberneko.xerces.dom.ChildNode
getNextSibling, getParentNode, getPreviousSibling, parentNode, previousSibling
-
Methods inherited from class org.htmlunit.cyberneko.xerces.dom.NodeImpl
addEventListener, appendChild, changed, changes, compareDocumentPosition, dispatchEvent, getAttributes, getBaseURI, getElementAncestor, getFeature, getLocalName, getNamespaceURI, getNodeValue, getPrefix, hasAttributes, hasStringValue, hasStringValue, isDefaultNamespace, isFirstChild, isFirstChild, isIdAttribute, isIdAttribute, isNormalized, isNormalized, isOwned, isOwned, isSameNode, isSpecified, isSpecified, isSupported, lookupNamespacePrefix, lookupNamespaceURI, lookupPrefix, needsSyncChildren, needsSyncChildren, normalize, removeEventListener, setNodeValue, setPrefix, 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_
private final java.lang.String name_
Document type name.
-
entities_
private NamedNodeMapImpl entities_
Entities.
-
notations_
private NamedNodeMapImpl notations_
Notations.
-
elements_
private NamedNodeMapImpl elements_
Elements.
-
publicID_
private java.lang.String publicID_
-
systemID_
private java.lang.String systemID_
-
internalSubset_
private java.lang.String internalSubset_
-
doctypeNumber_
private int doctypeNumber_
-
-
Constructor Detail
-
DocumentTypeImpl
public DocumentTypeImpl(CoreDocumentImpl ownerDocument, java.lang.String name)
Factory method for creating a document type node.- Parameters:
ownerDocument
- the owner documentname
- the name
-
DocumentTypeImpl
public DocumentTypeImpl(CoreDocumentImpl ownerDocument, java.lang.String qualifiedName, java.lang.String publicID, java.lang.String systemID)
-
-
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 interfaceorg.w3c.dom.DocumentType
-
getSystemId
public java.lang.String getSystemId()
Introduced in DOM Level 2.Return the system identifier of this Document type.
- Specified by:
getSystemId
in interfaceorg.w3c.dom.DocumentType
-
setInternalSubset
public void setInternalSubset(java.lang.String internalSubset)
-
getInternalSubset
public java.lang.String getInternalSubset()
Introduced in DOM Level 2.Return the internalSubset given as a string.
- Specified by:
getInternalSubset
in interfaceorg.w3c.dom.DocumentType
-
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. 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 interfaceorg.w3c.dom.Node
- Specified by:
getNodeType
in classNodeImpl
-
getNodeName
public java.lang.String getNodeName()
the name of this node.- Specified by:
getNodeName
in interfaceorg.w3c.dom.Node
- Specified by:
getNodeName
in classNodeImpl
-
cloneNode
public org.w3c.dom.Node cloneNode(boolean deep)
Returns a duplicate of a given node. You can consider this a generic "copy constructor" for nodes. The newly returned object should be completely independent of the source object's subtree, so changes in one after the clone has been made will not affect the other.Note: since we never have any children deep is meaningless here, ParentNode overrides this behavior. Returns a duplicate of a given node. You can consider this a generic "copy constructor" for nodes. The newly returned object should be completely independent of the source object's subtree, so changes in one after the clone has been made will not affect the other.
Note: since we never have any children deep is meaningless here, ParentNode overrides this behavior. Returns a duplicate of a given node. You can consider this a generic "copy constructor" for nodes. The newly returned object should be completely independent of the source object's subtree, so changes in one after the clone has been made will not affect the other.
Example: Cloning a Text node will copy both the node and the text it contains.
Example: Cloning something that has children -- Element or Attr, for example -- will _not_ clone those children unless a "deep clone" has been requested. A shallow clone of an Attr node will yield an empty Attr of the same name.
NOTE: Clones will always be read/write, even if the node being cloned is read-only, to permit applications using only the DOM API to obtain editable copies of locked portions of the tree. Clones the node.
- Specified by:
cloneNode
in interfaceorg.w3c.dom.Node
- Overrides:
cloneNode
in classParentNode
- See Also:
Example: Cloning a Text node will copy both the node and the text it contains. Example: Cloning something that has children -- Element or Attr, for example -- will _not_ clone those children unless a "deep clone" has been requested. A shallow clone of an Attr node will yield an empty Attr of the same name. NOTE: Clones will always be read/write, even if the node being cloned is read-only, to permit applications using only the DOM API to obtain editable copies of locked portions of the tree.
-
getTextContent
public java.lang.String getTextContent() throws org.w3c.dom.DOMException
This attribute returns the text content of this node and its descendants. When it is defined to be null, setting it has no effect. When set, any possible children this node may have are removed and replaced by a singleText
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, the returned string does not contain the element content whitespaces . 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, 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 nodesATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE nodeValue
DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE null - Specified by:
getTextContent
in interfaceorg.w3c.dom.Node
- Overrides:
getTextContent
in classParentNode
- Throws:
org.w3c.dom.DOMException
- DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in aDOMString
variable on the implementation platform.
-
setTextContent
public void setTextContent(java.lang.String textContent) throws org.w3c.dom.DOMException
This attribute returns the text content of this node and its descendants. When it is defined to be null, setting it has no effect. When set, any possible children this node may have are removed and replaced by a singleText
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, the returned string does not contain the element content whitespaces . 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, 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 nodesATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE, PROCESSING_INSTRUCTION_NODE nodeValue
DOCUMENT_NODE, DOCUMENT_TYPE_NODE, NOTATION_NODE null - Specified by:
setTextContent
in interfaceorg.w3c.dom.Node
- Overrides:
setTextContent
in classParentNode
- Throws:
org.w3c.dom.DOMException
- DOMSTRING_SIZE_ERR: Raised when it would return more characters than fit in aDOMString
variable on the implementation platform.
-
isEqualNode
public boolean isEqualNode(org.w3c.dom.Node arg)
Tests whether two nodes are equal.
This method tests for equality of nodes, not sameness (i.e., whether the two nodes are references to the same object) which can be tested withNode.isSameNode
. All nodes that are the same will also be equal, though the reverse may not be true.
Two nodes are equal if and only if the following conditions are satisfied: The two nodes are of the same type.The following string attributes are equal:nodeName
,localName
,namespaceURI
,prefix
,nodeValue
,baseURI
. This is: they are bothnull
, or they have the same length and are character for character identical. Theattributes
NamedNodeMaps
are equal. This is: they are bothnull
, or they have the same length and for each node that exists in one map there is a node that exists in the other map and is equal, although not necessarily at the same index.ThechildNodes
NodeLists
are equal. This is: they are bothnull
, or they have the same length and contain equal nodes at the same index. This is true forAttr
nodes as for any other type of node. Note that normalization can affect equality; to avoid this, nodes should be normalized before being compared.
For twoDocumentType
nodes to be equal, the following conditions must also be satisfied: The following string attributes are equal:publicId
,systemId
,internalSubset
.Theentities
NamedNodeMaps
are equal.Thenotations
NamedNodeMaps
are equal.
On the other hand, the following do not affect equality: theownerDocument
attribute, thespecified
attribute forAttr
nodes, theisWhitespaceInElementContent
attribute forText
nodes, as well as any user data or event listeners registered on the nodes. DOM Level 3 WD- Experimental. Override inherited behavior from NodeImpl to support deep equal. DOM Level 3 WD- Experimental. Override inherited behavior from ParentNodeImpl to support deep equal.- Specified by:
isEqualNode
in interfaceorg.w3c.dom.Node
- Overrides:
isEqualNode
in classParentNode
- Parameters:
arg
- The node to compare equality with.- Returns:
- If the nodes, and possibly subtrees are equal,
true
otherwisefalse
.
-
setOwnerDocument
protected void setOwnerDocument(CoreDocumentImpl doc)
NON-DOM set the ownerDocument of this node and its children NON-DOM set the ownerDocument of this node and its children- Overrides:
setOwnerDocument
in classParentNode
-
getNodeNumber
protected int getNodeNumber()
NON-DOM Get the number associated with this doctype.- Overrides:
getNodeNumber
in classNodeImpl
- Returns:
- the node number
-
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 interfaceorg.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 interfaceorg.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 interfaceorg.w3c.dom.DocumentType
-
getElements
public org.w3c.dom.NamedNodeMap getElements()
-
setUserData
public 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. The object can later be retrieved from this node by callinggetUserData
with the same key.- Specified by:
setUserData
in interfaceorg.w3c.dom.Node
- Overrides:
setUserData
in classNodeImpl
- Parameters:
key
- The key to associate the object to.data
- The object to associate to the given key, ornull
to remove any existing association to that key.handler
- The handler to associate to that key, ornull
.- Returns:
- Returns the
DOMObject
previously associated to the given key on this node, ornull
if there was none.
-
getUserData
public java.lang.Object getUserData(java.lang.String key)
Retrieves the object associated to a key on a this node. The object must first have been set to this node by callingsetUserData
with the same key.- Specified by:
getUserData
in interfaceorg.w3c.dom.Node
- Overrides:
getUserData
in classNodeImpl
- Parameters:
key
- The key the object is associated to.- Returns:
- Returns the
DOMObject
associated to the given key on this node, ornull
if there was none.
-
-