net.sf.saxon.dom

Class DocumentWrapper

public class DocumentWrapper extends NodeWrapper implements DocumentInfo

The document node of a tree implemented as a wrapper around a DOM Document.
Field Summary
protected StringbaseURI
protected Configurationconfig
protected longdocumentNumber
protected booleandomLevel3
Constructor Summary
DocumentWrapper(Node doc, String baseURI, Configuration config)
Wrap a DOM Document or DocumentFragment node
Method Summary
ConfigurationgetConfiguration()
Get the configuration previously set using setConfiguration
longgetDocumentNumber()
Get the unique document number
NamePoolgetNamePool()
Get the name pool used for the names in this document
intgetTypeAnnotation()
Get the type annotation.
String[]getUnparsedEntity(String name)
Get the unparsed entity with a given name
Iterator<String>getUnparsedEntityNames()
Get the list of unparsed entities defined in this document
booleanisSameNodeInfo(NodeInfo other)
Determine whether this is the same node as another node.
NodeInfoselectID(String id, boolean getParent)
Get the element with a given ID, if any
voidsetConfiguration(Configuration config)
Set the Configuration that contains this document
NodeWrapperwrap(Node node)
Create a wrapper for a node in this document

Field Detail

baseURI

protected String baseURI

config

protected Configuration config

documentNumber

protected long documentNumber

domLevel3

protected boolean domLevel3

Constructor Detail

DocumentWrapper

public DocumentWrapper(Node doc, String baseURI, Configuration config)
Wrap a DOM Document or DocumentFragment node

Parameters: doc a DOM Document or DocumentFragment node baseURI the base URI of the document config the Saxon configuration

Method Detail

getConfiguration

public Configuration getConfiguration()
Get the configuration previously set using setConfiguration

getDocumentNumber

public long getDocumentNumber()
Get the unique document number

getNamePool

public NamePool getNamePool()
Get the name pool used for the names in this document

getTypeAnnotation

public int getTypeAnnotation()
Get the type annotation. Always XS_UNTYPED.

getUnparsedEntity

public String[] getUnparsedEntity(String name)
Get the unparsed entity with a given name

Parameters: name the name of the entity

Returns: if the entity exists, return an array of two Strings, the first holding the system ID of the entity (as an absolute URI if possible), the second holding the public ID if there is one, or null if not. If the entity does not exist, the method returns null. Applications should be written on the assumption that this array may be extended in the future to provide additional information.

Since: 8.4 (implemented for this subclass since 9.2)

getUnparsedEntityNames

public Iterator<String> getUnparsedEntityNames()
Get the list of unparsed entities defined in this document

Returns: an Iterator, whose items are of type String, containing the names of all unparsed entities defined in this document. If there are no unparsed entities or if the information is not available then an empty iterator is returned

Since: 9.1 (implemented for this subclass since 9.2)

isSameNodeInfo

public boolean isSameNodeInfo(NodeInfo other)
Determine whether this is the same node as another node.
Note: a.isSameNode(b) if and only if generateId(a)==generateId(b)

Returns: true if this Node object and the supplied Node object represent the same node in the tree.

selectID

public NodeInfo selectID(String id, boolean getParent)
Get the element with a given ID, if any

Parameters: id the required ID value getParent

Returns: a NodeInfo representing the element with the given ID, or null if there is no such element. This implementation does not necessarily conform to the rule that if an invalid document contains two elements with the same ID, the one that comes last should be returned.

setConfiguration

public void setConfiguration(Configuration config)
Set the Configuration that contains this document

wrap

public NodeWrapper wrap(Node node)
Create a wrapper for a node in this document

Parameters: node the DOM node to be wrapped. This must be a node within the document wrapped by this DocumentWrapper

Throws: IllegalArgumentException if the node is not a descendant of the Document node wrapped by this DocumentWrapper