Package com.icl.saxon.tree
Class DocumentImpl
- java.lang.Object
-
- com.icl.saxon.om.AbstractNode
-
- com.icl.saxon.tree.NodeImpl
-
- com.icl.saxon.tree.ParentNodeImpl
-
- com.icl.saxon.tree.DocumentImpl
-
- All Implemented Interfaces:
DocumentInfo,NodeInfo,javax.xml.transform.dom.DOMLocator,javax.xml.transform.Source,javax.xml.transform.SourceLocator,org.w3c.dom.Document,org.w3c.dom.Node
public final class DocumentImpl extends ParentNodeImpl implements DocumentInfo, org.w3c.dom.Document
A node in the XML parse tree representing the Document itself (or equivalently, the root node of the Document).- Author:
- Michael H. Kay
-
-
Field Summary
-
Fields inherited from class com.icl.saxon.tree.ParentNodeImpl
sequence
-
Fields inherited from class com.icl.saxon.tree.NodeImpl
emptyArray, parent
-
Fields inherited from class com.icl.saxon.om.AbstractNode
NODE_LETTER
-
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 DocumentImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.w3c.dom.NodeadoptNode(org.w3c.dom.Node source)Attempts to adopt a node from another document to this document.voidcopy(Outputter out)Copy this node to a given outputterjava.lang.StringgenerateId()Get a character string that uniquely identifies this node within the documentprotected AxisEnumerationgetAllElements(int fingerprint)Get a list of all elements with a given name fingerprintjava.lang.StringgetBaseURI()Get the base URI of this root node.java.lang.StringBuffergetCharacterBuffer()Get the character bufferorg.w3c.dom.ElementgetDocumentElement()Get the root (outermost) element.DocumentInfogetDocumentRoot()Get the root (document) nodejava.lang.StringgetDocumentURI()The location of the document ornullif undefined or if theDocumentwas created usingDOMImplementation.createDocument.org.w3c.dom.DOMConfigurationgetDomConfig()The configuration used whenDocument.normalizeDocument()is invoked.java.lang.StringgetInputEncoding()An attribute specifying the encoding used for this document at the time of the parsing.java.util.HashtablegetKeyIndex(KeyManager keymanager, int fingerprint)Get the index for a given keyintgetLineNumber()Get the line number of this root node.protected intgetLineNumber(int sequence)Get the line number for an element.NamePoolgetNamePool()Get the name pool used for the names in this documentorg.w3c.dom.NodegetNextSibling()Get next sibling - always nullNodeFactorygetNodeFactory()Get the node factory that was used to build this documentshortgetNodeType()Return the type of node.org.w3c.dom.NodegetPreviousSibling()Get previous sibling - always nullbooleangetStrictErrorChecking()An attribute specifying whether error checking is enforced or not.java.lang.StringgetSystemId()Get the system id of this root nodeprotected java.lang.StringgetSystemId(int seq)Get the system id of an element in the documentjava.lang.StringgetUnparsedEntity(java.lang.String name)Get the unparsed entity with a given namejava.lang.StringgetXmlEncoding()An attribute specifying, as part of the XML declaration, the encoding of this document.booleangetXmlStandalone()An attribute specifying, as part of the XML declaration, whether this document is standalone.java.lang.StringgetXmlVersion()An attribute specifying, as part of the XML declaration, the version number of this document.voidnormalizeDocument()This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form.org.w3c.dom.NoderenameNode(org.w3c.dom.Node n, java.lang.String namespaceURI, java.lang.String qualifiedName)Rename an existing node of typeELEMENT_NODEorATTRIBUTE_NODE.NodeInfoselectID(java.lang.String id)Get the element with a given ID.protected voidsetCharacterBuffer(java.lang.StringBuffer buffer)Set the character bufferprotected voidsetDocumentElement(ElementImpl e)Set the top-level element of the document (variously called the root element or the document element).voidsetDocumentURI(java.lang.String documentURI)The location of the document ornullif undefined or if theDocumentwas created usingDOMImplementation.createDocument.voidsetKeyIndex(KeyManager keymanager, int fingerprint, java.util.Hashtable keyindex)Set the index for a given key.protected voidsetLineNumber(int sequence, int line)Set the line number for an element.voidsetLineNumbering()Set line numbering onvoidsetNamePool(NamePool pool)Set the name pool used for all names in this documentvoidsetNodeFactory(NodeFactory factory)Set the node factory that was used to build this documentvoidsetStrictErrorChecking(boolean strictErrorChecking)An attribute specifying whether error checking is enforced or not.protected voidsetSystemId(int seq, java.lang.String uri)Set the system id of an element in the documentvoidsetSystemId(java.lang.String uri)Set the system id of this nodeprotected voidsetUnparsedEntity(java.lang.String name, java.lang.String uri)Set an unparsed entity URI associated with this document.voidsetXmlStandalone(boolean xmlStandalone)An attribute specifying, as part of the XML declaration, whether this document is standalone.voidsetXmlVersion(java.lang.String xmlVersion)An attribute specifying, as part of the XML declaration, the version number of this document.-
Methods inherited from class com.icl.saxon.tree.ParentNodeImpl
addChild, compact, copyStringValue, dropChildren, enumerateChildren, getChildNodes, getFirstChild, getLastChild, getNodeValue, getNthChild, getSequenceNumber, getStringValue, hasChildNodes, removeChild, renumberChildren, useChildrenArray
-
Methods inherited from class com.icl.saxon.tree.NodeImpl
compareOrder, getAttributes, getAttributeValue, getAttributeValue, getDisplayName, getEnumeration, getFingerprint, getLocalName, getNameCode, getNextInDocument, getOriginatingNode, getParent, getPrefix, getPreviousInDocument, getURI, hasAttributes, isSameNodeInfo, outputNamespaceNodes, removeNode
-
Methods inherited from class com.icl.saxon.om.AbstractNode
appendChild, appendData, cloneNode, compareDocumentPosition, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, disallowUpdate, getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getColumnNumber, getData, getDoctype, getElementById, getElementsByTagName, getElementsByTagNameNS, getFeature, getImplementation, getLength, getName, getNamespaceURI, getNodeName, getOwnerDocument, getOwnerElement, getParentNode, getPublicId, getSchemaTypeInfo, getSpecified, getTagName, getTextContent, getUserData, getValue, getWholeText, hasAttribute, hasAttributeNS, importNode, insertBefore, insertData, isDefaultNamespace, isElementContentWhitespace, isEqualNode, isId, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeAttribute, removeAttributeNode, removeAttributeNS, removeChild, replaceChild, replaceData, replaceWholeText, setAttributeNode, setAttributeNodeNS, setAttributeNS, setData, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setNodeValue, setPrefix, setTextContent, setUserData, setValue, splitText, substringData, supports
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.w3c.dom.Document
createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, getDoctype, getElementById, getElementsByTagName, getElementsByTagNameNS, getImplementation, importNode
-
Methods inherited from interface org.w3c.dom.Node
appendChild, cloneNode, compareDocumentPosition, getAttributes, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNodeName, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
-
Methods inherited from interface com.icl.saxon.om.NodeInfo
compareOrder, copyStringValue, getAttributeValue, getAttributeValue, getDisplayName, getEnumeration, getFingerprint, getLocalName, getNameCode, getParent, getPrefix, getStringValue, getURI, hasChildNodes, isSameNodeInfo, outputNamespaceNodes
-
-
-
-
Method Detail
-
setCharacterBuffer
protected void setCharacterBuffer(java.lang.StringBuffer buffer)
Set the character buffer
-
getCharacterBuffer
public final java.lang.StringBuffer getCharacterBuffer()
Get the character buffer
-
setNamePool
public void setNamePool(NamePool pool)
Set the name pool used for all names in this document- Specified by:
setNamePoolin interfaceDocumentInfo
-
getNamePool
public NamePool getNamePool()
Get the name pool used for the names in this document- Specified by:
getNamePoolin interfaceDocumentInfo- Overrides:
getNamePoolin classNodeImpl
-
setNodeFactory
public void setNodeFactory(NodeFactory factory)
Set the node factory that was used to build this document
-
getNodeFactory
public NodeFactory getNodeFactory()
Get the node factory that was used to build this document
-
setDocumentElement
protected void setDocumentElement(ElementImpl e)
Set the top-level element of the document (variously called the root element or the document element). Note that a DocumentImpl may represent the root of a result tree fragment, in which case there is no document element.- Parameters:
e- the top-level element
-
setSystemId
public void setSystemId(java.lang.String uri)
Set the system id of this node- Specified by:
setSystemIdin interfacejavax.xml.transform.Source- Overrides:
setSystemIdin classNodeImpl
-
getSystemId
public java.lang.String getSystemId()
Get the system id of this root node- Specified by:
getSystemIdin interfaceNodeInfo- Specified by:
getSystemIdin interfacejavax.xml.transform.Source- Specified by:
getSystemIdin interfacejavax.xml.transform.SourceLocator- Overrides:
getSystemIdin classNodeImpl- Returns:
- the System Identifier of the entity in the source document containing the node, or null if not known. Note this is not the same as the base URI: the base URI can be modified by xml:base, but the system ID cannot.
-
getBaseURI
public java.lang.String getBaseURI()
Get the base URI of this root node. For a root node the base URI is the same as the System ID.- Specified by:
getBaseURIin interfaceorg.w3c.dom.Node- Specified by:
getBaseURIin interfaceNodeInfo- Overrides:
getBaseURIin classNodeImpl
-
setSystemId
protected void setSystemId(int seq, java.lang.String uri)Set the system id of an element in the document
-
getSystemId
protected java.lang.String getSystemId(int seq)
Get the system id of an element in the document
-
setLineNumbering
public void setLineNumbering()
Set line numbering on
-
setLineNumber
protected void setLineNumber(int sequence, int line)Set the line number for an element. Ignored if line numbering is off.
-
getLineNumber
protected int getLineNumber(int sequence)
Get the line number for an element. Return -1 if line numbering is off.
-
getLineNumber
public int getLineNumber()
Get the line number of this root node.- Specified by:
getLineNumberin interfaceNodeInfo- Specified by:
getLineNumberin interfacejavax.xml.transform.SourceLocator- Overrides:
getLineNumberin classNodeImpl- Returns:
- 0 always
-
getNodeType
public final short getNodeType()
Return the type of node.- Specified by:
getNodeTypein interfaceorg.w3c.dom.Node- Specified by:
getNodeTypein interfaceNodeInfo- Returns:
- NodeInfo.ROOT (always)
-
getNextSibling
public final org.w3c.dom.Node getNextSibling()
Get next sibling - always null- Specified by:
getNextSiblingin interfaceorg.w3c.dom.Node- Overrides:
getNextSiblingin classNodeImpl- Returns:
- null
-
getPreviousSibling
public final org.w3c.dom.Node getPreviousSibling()
Get previous sibling - always null- Specified by:
getPreviousSiblingin interfaceorg.w3c.dom.Node- Overrides:
getPreviousSiblingin classNodeImpl- Returns:
- null
-
getDocumentElement
public org.w3c.dom.Element getDocumentElement()
Get the root (outermost) element.- Specified by:
getDocumentElementin interfaceorg.w3c.dom.Document- Overrides:
getDocumentElementin classNodeImpl- Returns:
- the Element node for the outermost element of the document.
-
getDocumentRoot
public DocumentInfo getDocumentRoot()
Get the root (document) node- Specified by:
getDocumentRootin interfaceNodeInfo- Overrides:
getDocumentRootin classNodeImpl- Returns:
- the DocumentInfo representing this document
-
generateId
public java.lang.String generateId()
Get a character string that uniquely identifies this node within the document- Specified by:
generateIdin interfaceNodeInfo- Overrides:
generateIdin classNodeImpl- Returns:
- the empty string
-
getAllElements
protected AxisEnumeration getAllElements(int fingerprint)
Get a list of all elements with a given name fingerprint
-
selectID
public NodeInfo selectID(java.lang.String id)
Get the element with a given ID.- Specified by:
selectIDin interfaceDocumentInfo- Parameters:
id- The unique ID of the required element, previously registered using registerID()- Returns:
- The NodeInfo for the given ID if one has been registered, otherwise null.
-
getKeyIndex
public java.util.Hashtable getKeyIndex(KeyManager keymanager, int fingerprint)
Get the index for a given key- Specified by:
getKeyIndexin interfaceDocumentInfo- Parameters:
keymanager- The key manager managing this keyfingerprint- The fingerprint of the name of the key (unique with the key manager)- Returns:
- The index, if one has been built, in the form of a Hashtable that maps the key value to a Vector of nodes having that key value. If no index has been built, returns null.
-
setKeyIndex
public void setKeyIndex(KeyManager keymanager, int fingerprint, java.util.Hashtable keyindex)
Set the index for a given key. The method is synchronized because the same document can be used by several stylesheets at the same time.- Specified by:
setKeyIndexin interfaceDocumentInfo- Parameters:
keymanager- The key manager managing this keyfingerprint- The fingerprint of the name of the key (unique with the key manager)keyindex- the index, in the form of a Hashtable that maps the key value to a Vector of nodes having that key value. Or the String "under construction", indicating that the index is being built.
-
setUnparsedEntity
protected void setUnparsedEntity(java.lang.String name, java.lang.String uri)Set an unparsed entity URI associated with this document. For system use only, while building the document.
-
getUnparsedEntity
public java.lang.String getUnparsedEntity(java.lang.String name)
Get the unparsed entity with a given name- Specified by:
getUnparsedEntityin interfaceDocumentInfo- Parameters:
name- the name of the entity- Returns:
- the URI of the entity if there is one, or empty string if not
-
copy
public void copy(Outputter out) throws javax.xml.transform.TransformerException
Copy this node to a given outputter
-
adoptNode
public org.w3c.dom.Node adoptNode(org.w3c.dom.Node source) throws org.w3c.dom.DOMExceptionAttempts to adopt a node from another document to this document.- Specified by:
adoptNodein interfaceorg.w3c.dom.Document- Parameters:
source- The node to move into this document.- Returns:
- The adopted node, or
nullif this operation fails, such as when the source node comes from a different implementation. - Throws:
org.w3c.dom.DOMException- NOT_SUPPORTED_ERR: Raised if the source node is of typeDOCUMENT,DOCUMENT_TYPE.
NO_MODIFICATION_ALLOWED_ERR: Raised when the source node is readonly.- Since:
- DOM Level 3
-
getDocumentURI
public java.lang.String getDocumentURI()
The location of the document ornullif undefined or if theDocumentwas created usingDOMImplementation.createDocument. No lexical checking is performed when setting this attribute; this could result in anullvalue returned when usingNode.baseURI.
Beware that when theDocumentsupports the feature "HTML" [DOM Level 2 HTML] , the href attribute of the HTML BASE element takes precedence over this attribute when computingNode.baseURI.- Specified by:
getDocumentURIin interfaceorg.w3c.dom.Document- Since:
- DOM Level 3
-
getDomConfig
public org.w3c.dom.DOMConfiguration getDomConfig()
The configuration used whenDocument.normalizeDocument()is invoked.- Specified by:
getDomConfigin interfaceorg.w3c.dom.Document- Since:
- DOM Level 3
-
getInputEncoding
public java.lang.String getInputEncoding()
An attribute specifying the encoding used for this document at the time of the parsing. This isnullwhen it is not known, such as when theDocumentwas created in memory.- Specified by:
getInputEncodingin interfaceorg.w3c.dom.Document- Since:
- DOM Level 3
-
getStrictErrorChecking
public boolean getStrictErrorChecking()
An attribute specifying whether error checking is enforced or not. When set tofalse, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise anyDOMExceptionon DOM operations or report errors while usingDocument.normalizeDocument(). In case of error, the behavior is undefined. This attribute istrueby default.- Specified by:
getStrictErrorCheckingin interfaceorg.w3c.dom.Document- Since:
- DOM Level 3
-
getXmlEncoding
public java.lang.String getXmlEncoding()
An attribute specifying, as part of the XML declaration, the encoding of this document. This isnullwhen unspecified or when it is not known, such as when theDocumentwas created in memory.- Specified by:
getXmlEncodingin interfaceorg.w3c.dom.Document- Since:
- DOM Level 3
-
getXmlStandalone
public boolean getXmlStandalone()
An attribute specifying, as part of the XML declaration, whether this document is standalone. This isfalsewhen unspecified.Note: No verification is done on the value when setting this attribute. Applications should use
Document.normalizeDocument()with the "validate" parameter to verify if the value matches the validity constraint for standalone document declaration as defined in [XML 1.0].- Specified by:
getXmlStandalonein interfaceorg.w3c.dom.Document- Since:
- DOM Level 3
-
getXmlVersion
public java.lang.String getXmlVersion()
An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if this document supports the "XML" feature, the value is"1.0".- Specified by:
getXmlVersionin interfaceorg.w3c.dom.Document- Since:
- DOM Level 3
-
normalizeDocument
public void normalizeDocument()
This method acts as if the document was going through a save and load cycle, putting the document in a "normal" form.- Specified by:
normalizeDocumentin interfaceorg.w3c.dom.Document- Since:
- DOM Level 3
-
renameNode
public org.w3c.dom.Node renameNode(org.w3c.dom.Node n, java.lang.String namespaceURI, java.lang.String qualifiedName) throws org.w3c.dom.DOMExceptionRename an existing node of typeELEMENT_NODEorATTRIBUTE_NODE.- Specified by:
renameNodein interfaceorg.w3c.dom.Document- Parameters:
n- The node to rename.namespaceURI- The new namespace URI.qualifiedName- The new qualified name.- Returns:
- The renamed node. This is either the specified node or the new node that was created to replace the specified node.
- Throws:
org.w3c.dom.DOMException- NOT_SUPPORTED_ERR: Raised when the type of the specified node is neitherELEMENT_NODEnorATTRIBUTE_NODE, or if the implementation does not support the renaming of the document element.
INVALID_CHARACTER_ERR: Raised if the new qualified name is not an XML name according to the XML version in use specified in theDocument.xmlVersionattribute.
WRONG_DOCUMENT_ERR: Raised when the specified node was created from a different document than this document.
NAMESPACE_ERR: Raised if thequalifiedNameis a malformed qualified name, if thequalifiedNamehas a prefix and thenamespaceURIisnull, or if thequalifiedNamehas a prefix that is "xml" and thenamespaceURIis different from " http://www.w3.org/XML/1998/namespace" [XML Namespaces] . Also raised, when the node being renamed is an attribute, if thequalifiedName, or its prefix, is "xmlns" and thenamespaceURIis different from "http://www.w3.org/2000/xmlns/".- Since:
- DOM Level 3
-
setDocumentURI
public void setDocumentURI(java.lang.String documentURI)
The location of the document ornullif undefined or if theDocumentwas created usingDOMImplementation.createDocument. No lexical checking is performed when setting this attribute; this could result in anullvalue returned when usingNode.baseURI.
Beware that when theDocumentsupports the feature "HTML" [DOM Level 2 HTML] , the href attribute of the HTML BASE element takes precedence over this attribute when computingNode.baseURI.- Specified by:
setDocumentURIin interfaceorg.w3c.dom.Document- Since:
- DOM Level 3
-
setStrictErrorChecking
public void setStrictErrorChecking(boolean strictErrorChecking)
An attribute specifying whether error checking is enforced or not. When set tofalse, the implementation is free to not test every possible error case normally defined on DOM operations, and not raise anyDOMExceptionon DOM operations or report errors while usingDocument.normalizeDocument(). In case of error, the behavior is undefined. This attribute istrueby default.- Specified by:
setStrictErrorCheckingin interfaceorg.w3c.dom.Document- Since:
- DOM Level 3
-
setXmlStandalone
public void setXmlStandalone(boolean xmlStandalone) throws org.w3c.dom.DOMExceptionAn attribute specifying, as part of the XML declaration, whether this document is standalone. This isfalsewhen unspecified.Note: No verification is done on the value when setting this attribute. Applications should use
Document.normalizeDocument()with the "validate" parameter to verify if the value matches the validity constraint for standalone document declaration as defined in [XML 1.0].- Specified by:
setXmlStandalonein interfaceorg.w3c.dom.Document- Throws:
org.w3c.dom.DOMException- NOT_SUPPORTED_ERR: Raised if this document does not support the "XML" feature.- Since:
- DOM Level 3
-
setXmlVersion
public void setXmlVersion(java.lang.String xmlVersion) throws org.w3c.dom.DOMExceptionAn attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if this document supports the "XML" feature, the value is"1.0". If this document does not support the "XML" feature, the value is alwaysnull. Changing this attribute will affect methods that check for invalid characters in XML names. Application should invokeDocument.normalizeDocument()in order to check for invalid characters in theNodes that are already part of thisDocument.
DOM applications may use theDOMImplementation.hasFeature(feature, version)method with parameter values "XMLVersion" and "1.0" (respectively) to determine if an implementation supports [XML 1.0]. DOM applications may use the same method with parameter values "XMLVersion" and "1.1" (respectively) to determine if an implementation supports [XML 1.1]. In both cases, in order to support XML, an implementation must also support the "XML" feature defined in this specification.Documentobjects supporting a version of the "XMLVersion" feature must not raise aNOT_SUPPORTED_ERRexception for the same version number when usingDocument.xmlVersion.- Specified by:
setXmlVersionin interfaceorg.w3c.dom.Document- Throws:
org.w3c.dom.DOMException- NOT_SUPPORTED_ERR: Raised if the version is set to a value that is not supported by thisDocumentor if this document does not support the "XML" feature.- Since:
- DOM Level 3
-
-