|
|||||||||
| Home >> All >> org >> apache >> xml >> [ dtm overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
org.apache.xml.dtm
Interface DTM

- public interface DTM
DTM is an XML document model expressed as a table
rather than an object tree. It attempts to provide an interface to
a parse tree that has very little object creation. (DTM
implementations may also support incremental construction of the
model, but that's hidden from the DTM API.)
Nodes in the DTM are identified by integer "handles". A handle must be unique within a process, and carries both node identification and document identification. It must be possible to compare two handles (and thus their nodes) for identity with "==".
Namespace URLs, local-names, and expanded-names can all be represented by and tested as integer ID values. An expanded name represents (and may or may not directly contain) a combination of the URL ID, and the local-name ID. Note that the namespace URL id can be 0, which should have the meaning that the namespace is null. For consistancy, zero should not be used for a local-name index.
Text content of a node is represented by an index and length, permitting efficient storage such as a shared FastStringBuffer.
The model of the tree, as well as the general navigation model, is that of XPath 1.0, for the moment. The model will eventually be adapted to match the XPath 2.0 data model, XML Schema, and InfoSet.
DTM does _not_ directly support the W3C's Document Object Model. However, it attempts to come close enough that an implementation of DTM can be created that wraps a DOM and vice versa.
Please Note: The DTM API is still Subject To Change. This wouldn't affect most users, but might require updating some extensions.
The largest change being contemplated is a reconsideration of the Node Handle representation. We are still not entirely sure that an integer packed with two numeric subfields is really the best solution. It has been suggested that we move up to a Long, to permit more nodes per document without having to reduce the number of slots in the DTMManager. There's even been a proposal that we replace these integers with "cursor" objects containing the internal node id and a pointer to the actual DTM object; this might reduce the need to continuously consult the DTMManager to retrieve the latter, and might provide a useful "hook" back into normal Java heap management. But changing this datatype would have huge impact on Xalan's internals -- especially given Java's lack of C-style typedefs -- so we won't cut over unless we're convinced the new solution really would be an improvement!
| Field Summary | |
static short |
ATTRIBUTE_NODE
The node is an Attr. |
static short |
CDATA_SECTION_NODE
The node is a CDATASection. |
static short |
COMMENT_NODE
The node is a Comment. |
static short |
DOCUMENT_FRAGMENT_NODE
The node is a DocumentFragment. |
static short |
DOCUMENT_NODE
The node is a Document. |
static short |
DOCUMENT_TYPE_NODE
The node is a DocumentType. |
static short |
ELEMENT_NODE
The node is an Element. |
static short |
ENTITY_NODE
The node is an Entity. |
static short |
ENTITY_REFERENCE_NODE
The node is an EntityReference. |
static short |
NAMESPACE_NODE
The node is a namespace node. |
static short |
NOTATION_NODE
The node is a Notation. |
static short |
NTYPES
The number of valid nodetypes. |
static int |
NULL
Null node handles are represented by this value. |
static short |
PROCESSING_INSTRUCTION_NODE
The node is a ProcessingInstruction. |
static short |
ROOT_NODE
The node is a Root. |
static short |
TEXT_NODE
The node is a Text node. |
| Method Summary | |
void |
appendChild(int newChild,
boolean clone,
boolean cloneDepth)
Append a child to "the end of the document". |
void |
appendTextChild(java.lang.String str)
Append a text node child that will be constructed from a string, to the end of the document. |
void |
dispatchCharactersEvents(int nodeHandle,
org.xml.sax.ContentHandler ch,
boolean normalize)
Directly call the characters method on the passed ContentHandler for the string-value of the given node (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value). |
void |
dispatchToEvents(int nodeHandle,
org.xml.sax.ContentHandler ch)
Directly create SAX parser events representing the XML content of a DTM subtree. |
void |
documentRegistration()
As the DTM is registered with the DTMManager, this method will be called. |
void |
documentRelease()
As documents are released from the DTMManager, the DTM implementation will be notified of the event. |
int |
getAttributeNode(int elementHandle,
java.lang.String namespaceURI,
java.lang.String name)
Retrieves an attribute node by local name and namespace URI %TBD% Note that we currently have no way to support the DOM's old getAttribute() call, which accesses only the qname. |
DTMAxisIterator |
getAxisIterator(int axis)
This is a shortcut to the iterators that implement XPath axes. |
DTMAxisTraverser |
getAxisTraverser(int axis)
This returns a stateless "traverser", that can navigate over an XPath axis, though not in document order. |
org.xml.sax.ContentHandler |
getContentHandler()
Return this DTM's content handler, if it has one. |
org.xml.sax.ext.DeclHandler |
getDeclHandler()
Return this DTM's DeclHandler, if it has one. |
int |
getDocument()
Given a DTM which contains only a single document, find the Node Handle of the Document node. |
boolean |
getDocumentAllDeclarationsProcessed()
Return an indication of whether the processor has read the complete DTD. |
java.lang.String |
getDocumentBaseURI()
Return the base URI of the document entity. |
java.lang.String |
getDocumentEncoding(int nodeHandle)
Return the name of the character encoding scheme in which the document entity is expressed. |
int |
getDocumentRoot(int nodeHandle)
Given a node handle, find the owning document node. |
java.lang.String |
getDocumentStandalone(int nodeHandle)
Return an indication of the standalone status of the document, either "yes" or "no". |
java.lang.String |
getDocumentSystemIdentifier(int nodeHandle)
Return the system identifier of the document entity. |
java.lang.String |
getDocumentTypeDeclarationPublicIdentifier()
Return the public identifier of the external subset, normalized as described in 4.2.2 External Entities [XML]. |
java.lang.String |
getDocumentTypeDeclarationSystemIdentifier()
A document type declaration information item has the following properties: 1. |
java.lang.String |
getDocumentVersion(int documentHandle)
Return a string representing the XML version of the document. |
org.xml.sax.DTDHandler |
getDTDHandler()
Return this DTM's DTDHandler, if it has one. |
int |
getElementById(java.lang.String elementId)
Returns the Element whose ID is given by
elementId. |
org.xml.sax.EntityResolver |
getEntityResolver()
Return this DTM's EntityResolver, if it has one. |
org.xml.sax.ErrorHandler |
getErrorHandler()
Return this DTM's ErrorHandler, if it has one. |
int |
getExpandedTypeID(int nodeHandle)
Given a node handle, return an ID that represents the node's expanded name. |
int |
getExpandedTypeID(java.lang.String namespace,
java.lang.String localName,
int type)
Given an expanded name, return an ID. |
int |
getFirstAttribute(int nodeHandle)
Given a node handle, get the index of the node's first attribute. |
int |
getFirstChild(int nodeHandle)
Given a node handle, get the handle of the node's first child. |
int |
getFirstNamespaceNode(int nodeHandle,
boolean inScope)
Given a node handle, get the index of the node's first namespace node. |
int |
getLastChild(int nodeHandle)
Given a node handle, get the handle of the node's last child. |
short |
getLevel(int nodeHandle)
Get the depth level of this node in the tree (equals 1 for a parentless node). |
org.xml.sax.ext.LexicalHandler |
getLexicalHandler()
Return this DTM's lexical handler, if it has one. |
java.lang.String |
getLocalName(int nodeHandle)
Given a node handle, return its DOM-style localname. |
java.lang.String |
getLocalNameFromExpandedNameID(int ExpandedNameID)
Given an expanded-name ID, return the local name part. |
java.lang.String |
getNamespaceFromExpandedNameID(int ExpandedNameID)
Given an expanded-name ID, return the namespace URI part. |
java.lang.String |
getNamespaceURI(int nodeHandle)
Given a node handle, return its DOM-style namespace URI (As defined in Namespaces, this is the declared URI which this node's prefix -- or default in lieu thereof -- was mapped to.) |
int |
getNextAttribute(int nodeHandle)
Given a node handle, advance to the next attribute. |
int |
getNextNamespaceNode(int baseHandle,
int namespaceHandle,
boolean inScope)
Given a namespace handle, advance to the next namespace in the same scope (local or local-plus-inherited, as selected by getFirstNamespaceNode) |
int |
getNextSibling(int nodeHandle)
Given a node handle, advance to its next sibling. |
org.w3c.dom.Node |
getNode(int nodeHandle)
Return an DOM node for the given node. |
java.lang.String |
getNodeName(int nodeHandle)
Given a node handle, return its DOM-style node name. |
java.lang.String |
getNodeNameX(int nodeHandle)
Given a node handle, return the XPath node name. |
short |
getNodeType(int nodeHandle)
Given a node handle, return its DOM-style node type. |
java.lang.String |
getNodeValue(int nodeHandle)
Given a node handle, return its node value. |
int |
getOwnerDocument(int nodeHandle)
Given a node handle, find the owning document node. |
int |
getParent(int nodeHandle)
Given a node handle, find its parent node. |
java.lang.String |
getPrefix(int nodeHandle)
Given a namespace handle, return the prefix that the namespace decl is mapping. |
int |
getPreviousSibling(int nodeHandle)
Given a node handle, find its preceeding sibling. |
javax.xml.transform.SourceLocator |
getSourceLocatorFor(int node)
Get the location of a node in the source document. |
org.apache.xml.utils.XMLString |
getStringValue(int nodeHandle)
Get the string-value of a node as a String object (see http://www.w3.org/TR/xpath#data-model for the definition of a node's string-value). |
char[] |
getStringValueChunk(int nodeHandle,
int chunkIndex,
int[] startAndLen)
Get a character array chunk in the string-value of a node. |
int |
getStringValueChunkCount(int nodeHandle)
Get number of character array chunks in the string-value of a node. |
DTMAxisIterator |
getTypedAxisIterator(int axis,
int type)
Get an iterator that can navigate over an XPath Axis, predicated by the extended type ID. |
java.lang.String |
getUnparsedEntityURI(java.lang.String name)
The getUnparsedEntityURI function returns the URI of the unparsed entity with the specified name in the same document as the context node (see [3.3 Unparsed Entities]). |
boolean |
hasChildNodes(int nodeHandle)
Given a node handle, test if it has child nodes. |
boolean |
isAttributeSpecified(int attributeHandle)
5. |
boolean |
isCharacterElementContentWhitespace(int nodeHandle)
2. |
boolean |
isDocumentAllDeclarationsProcessed(int documentHandle)
10. |
boolean |
isNodeAfter(int firstNodeHandle,
int secondNodeHandle)
Figure out whether nodeHandle2 should be considered as being later in the document than nodeHandle1, in Document Order as defined by the XPath model. |
boolean |
isSupported(java.lang.String feature,
java.lang.String version)
Tests whether DTM DOM implementation implements a specific feature and that feature is supported by this node. |
void |
migrateTo(DTMManager manager)
Migrate a DTM built with an old DTMManager to a new DTMManager. |
boolean |
needsTwoThreads()
|
void |
setDocumentBaseURI(java.lang.String baseURI)
Set the base URI of the document entity. |
void |
setFeature(java.lang.String featureId,
boolean state)
Set an implementation dependent feature. |
void |
setProperty(java.lang.String property,
java.lang.Object value)
Set a run time property for this DTM instance. |
boolean |
supportsPreStripping()
Return true if the xsl:strip-space or xsl:preserve-space was processed during construction of the document contained in this DTM. |
| Field Detail |
NULL
public static final int NULL
- Null node handles are represented by this value.
- See Also:
- Constant Field Values
ROOT_NODE
public static final short ROOT_NODE
- The node is a
Root.- See Also:
- Constant Field Values
ELEMENT_NODE
public static final short ELEMENT_NODE
- The node is an
Element.- See Also:
- Constant Field Values
ATTRIBUTE_NODE
public static final short ATTRIBUTE_NODE
- The node is an
Attr.- See Also:
- Constant Field Values
TEXT_NODE
public static final short TEXT_NODE
- The node is a
Textnode.- See Also:
- Constant Field Values
CDATA_SECTION_NODE
public static final short CDATA_SECTION_NODE
- The node is a
CDATASection.- See Also:
- Constant Field Values
ENTITY_REFERENCE_NODE
public static final short ENTITY_REFERENCE_NODE
- The node is an
EntityReference.- See Also:
- Constant Field Values
ENTITY_NODE
public static final short ENTITY_NODE
- The node is an
Entity.- See Also:
- Constant Field Values
PROCESSING_INSTRUCTION_NODE
public static final short PROCESSING_INSTRUCTION_NODE
- The node is a
ProcessingInstruction.- See Also:
- Constant Field Values
COMMENT_NODE
public static final short COMMENT_NODE
- The node is a
Comment.- See Also:
- Constant Field Values
DOCUMENT_NODE
public static final short DOCUMENT_NODE
- The node is a
Document.- See Also:
- Constant Field Values
DOCUMENT_TYPE_NODE
public static final short DOCUMENT_TYPE_NODE
- The node is a
DocumentType.- See Also:
- Constant Field Values
DOCUMENT_FRAGMENT_NODE
public static final short DOCUMENT_FRAGMENT_NODE
- The node is a
DocumentFragment.- See Also:
- Constant Field Values
NOTATION_NODE
public static final short NOTATION_NODE
- The node is a
Notation.- See Also:
- Constant Field Values
NAMESPACE_NODE
public static final short NAMESPACE_NODE
- The node is a
namespace node. Note that this is not currently a node type defined by the DOM API.- See Also:
- Constant Field Values
NTYPES
public static final short NTYPES
- The number of valid nodetypes.
- See Also:
- Constant Field Values
| Method Detail |
setFeature
public void setFeature(java.lang.String featureId, boolean state)
- Set an implementation dependent feature.
%REVIEW% Do we really expect to set features on DTMs?
setProperty
public void setProperty(java.lang.String property, java.lang.Object value)
- Set a run time property for this DTM instance.
getAxisTraverser
public DTMAxisTraverser getAxisTraverser(int axis)
- This returns a stateless "traverser", that can navigate over an
XPath axis, though not in document order.
getAxisIterator
public DTMAxisIterator getAxisIterator(int axis)
- This is a shortcut to the iterators that implement
XPath axes.
Returns a bare-bones iterator that must be initialized
with a start node (using iterator.setStartNode()).
getTypedAxisIterator
public DTMAxisIterator getTypedAxisIterator(int axis, int type)
- Get an iterator that can navigate over an XPath Axis, predicated by
the extended type ID.
hasChildNodes
public boolean hasChildNodes(int nodeHandle)
- Given a node handle, test if it has child nodes.
%REVIEW% This is obviously useful at the DOM layer, where it would permit testing this without having to create a proxy node. It's less useful in the DTM API, where (dtm.getFirstChild(nodeHandle)!=DTM.NULL) is just as fast and almost as self-evident. But it's a convenience, and eases porting of DOM code to DTM.
getFirstChild
public int getFirstChild(int nodeHandle)
- Given a node handle, get the handle of the node's first child.
getLastChild
public int getLastChild(int nodeHandle)
- Given a node handle, get the handle of the node's last child.
getAttributeNode
public int getAttributeNode(int elementHandle,
java.lang.String namespaceURI,
java.lang.String name)
- Retrieves an attribute node by local name and namespace URI
%TBD% Note that we currently have no way to support
the DOM's old getAttribute() call, which accesses only the qname.
getFirstAttribute
public int getFirstAttribute(int nodeHandle)
- Given a node handle, get the index of the node's first attribute.
getFirstNamespaceNode
public int getFirstNamespaceNode(int nodeHandle,
boolean inScope)
- Given a node handle, get the index of the node's first namespace node.
getNextSibling
public int getNextSibling(int nodeHandle)
- Given a node handle, advance to its next sibling.
getPreviousSibling
public int getPreviousSibling(int nodeHandle)
- Given a node handle, find its preceeding sibling.
WARNING: DTM implementations may be asymmetric; in some,
this operation has been resolved by search, and is relatively expensive.
getNextAttribute
public int getNextAttribute(int nodeHandle)
- Given a node handle, advance to the next attribute. If an
element, we advance to its first attribute; if an attr, we advance to
the next attr of the same element.
getNextNamespaceNode
public int getNextNamespaceNode(int baseHandle,
int namespaceHandle,
boolean inScope)
- Given a namespace handle, advance to the next namespace in the same scope
(local or local-plus-inherited, as selected by getFirstNamespaceNode)
getParent
public int getParent(int nodeHandle)
- Given a node handle, find its parent node.
getDocument
public int getDocument()
- Given a DTM which contains only a single document,
find the Node Handle of the Document node. Note
that if the DTM is configured so it can contain multiple
documents, this call will return the Document currently
under construction -- but may return null if it's between
documents. Generally, you should use getOwnerDocument(nodeHandle)
or getDocumentRoot(nodeHandle) instead.
getOwnerDocument
public int getOwnerDocument(int nodeHandle)
- Given a node handle, find the owning document node. This version mimics
the behavior of the DOM call by the same name.
getDocumentRoot
public int getDocumentRoot(int nodeHandle)
- Given a node handle, find the owning document node.
getStringValue
public org.apache.xml.utils.XMLString getStringValue(int nodeHandle)
- Get the string-value of a node as a String object
(see http://www.w3.org/TR/xpath#data-model
for the definition of a node's string-value).
getStringValueChunkCount
public int getStringValueChunkCount(int nodeHandle)
- Get number of character array chunks in
the string-value of a node.
(see http://www.w3.org/TR/xpath#data-model
for the definition of a node's string-value).
Note that a single text node may have multiple text chunks.
getStringValueChunk
public char[] getStringValueChunk(int nodeHandle,
int chunkIndex,
int[] startAndLen)
- Get a character array chunk in the string-value of a node.
(see http://www.w3.org/TR/xpath#data-model
for the definition of a node's string-value).
Note that a single text node may have multiple text chunks.
getExpandedTypeID
public int getExpandedTypeID(int nodeHandle)
- Given a node handle, return an ID that represents the node's expanded name.
getExpandedTypeID
public int getExpandedTypeID(java.lang.String namespace, java.lang.String localName, int type)
- Given an expanded name, return an ID. If the expanded-name does not
exist in the internal tables, the entry will be created, and the ID will
be returned. Any additional nodes that are created that have this
expanded name will use this ID.
getLocalNameFromExpandedNameID
public java.lang.String getLocalNameFromExpandedNameID(int ExpandedNameID)
- Given an expanded-name ID, return the local name part.
getNamespaceFromExpandedNameID
public java.lang.String getNamespaceFromExpandedNameID(int ExpandedNameID)
- Given an expanded-name ID, return the namespace URI part.
getNodeName
public java.lang.String getNodeName(int nodeHandle)
- Given a node handle, return its DOM-style node name. This will
include names such as #text or #document.
getNodeNameX
public java.lang.String getNodeNameX(int nodeHandle)
- Given a node handle, return the XPath node name. This should be
the name as described by the XPath data model, NOT the DOM-style
name.
getLocalName
public java.lang.String getLocalName(int nodeHandle)
- Given a node handle, return its DOM-style localname.
(As defined in Namespaces, this is the portion of the name after the
prefix, if present, or the whole node name if no prefix exists)
getPrefix
public java.lang.String getPrefix(int nodeHandle)
- Given a namespace handle, return the prefix that the namespace decl is
mapping.
Given a node handle, return the prefix used to map to the namespace.
(As defined in Namespaces, this is the portion of the name before any
colon character).
getNamespaceURI
public java.lang.String getNamespaceURI(int nodeHandle)
- Given a node handle, return its DOM-style namespace URI
(As defined in Namespaces, this is the declared URI which this node's
prefix -- or default in lieu thereof -- was mapped to.)
getNodeValue
public java.lang.String getNodeValue(int nodeHandle)
- Given a node handle, return its node value. This is mostly
as defined by the DOM, but may ignore some conveniences.
getNodeType
public short getNodeType(int nodeHandle)
- Given a node handle, return its DOM-style node type.
%REVIEW% Generally, returning short is false economy. Return int?
getLevel
public short getLevel(int nodeHandle)
- Get the depth level of this node in the tree (equals 1 for
a parentless node).
isSupported
public boolean isSupported(java.lang.String feature, java.lang.String version)
- Tests whether DTM DOM implementation implements a specific feature and
that feature is supported by this node.
getDocumentBaseURI
public java.lang.String getDocumentBaseURI()
- Return the base URI of the document entity. If it is not known
(because the document was parsed from a socket connection or from
standard input, for example), the value of this property is unknown.
setDocumentBaseURI
public void setDocumentBaseURI(java.lang.String baseURI)
- Set the base URI of the document entity.
getDocumentSystemIdentifier
public java.lang.String getDocumentSystemIdentifier(int nodeHandle)
- Return the system identifier of the document entity. If
it is not known, the value of this property is null.
getDocumentEncoding
public java.lang.String getDocumentEncoding(int nodeHandle)
- Return the name of the character encoding scheme
in which the document entity is expressed.
getDocumentStandalone
public java.lang.String getDocumentStandalone(int nodeHandle)
- Return an indication of the standalone status of the document,
either "yes" or "no". This property is derived from the optional
standalone document declaration in the XML declaration at the
beginning of the document entity, and has no value if there is no
standalone document declaration.
getDocumentVersion
public java.lang.String getDocumentVersion(int documentHandle)
- Return a string representing the XML version of the document. This
property is derived from the XML declaration optionally present at the
beginning of the document entity, and has no value if there is no XML
declaration.
getDocumentAllDeclarationsProcessed
public boolean getDocumentAllDeclarationsProcessed()
- Return an indication of
whether the processor has read the complete DTD. Its value is a
boolean. If it is false, then certain properties (indicated in their
descriptions below) may be unknown. If it is true, those properties
are never unknown.
getDocumentTypeDeclarationSystemIdentifier
public java.lang.String getDocumentTypeDeclarationSystemIdentifier()
- A document type declaration information item has the following properties:
1. [system identifier] The system identifier of the external subset, if
it exists. Otherwise this property has no value.
getDocumentTypeDeclarationPublicIdentifier
public java.lang.String getDocumentTypeDeclarationPublicIdentifier()
- Return the public identifier of the external subset,
normalized as described in 4.2.2 External Entities [XML]. If there is
no external subset or if it has no public identifier, this property
has no value.
getElementById
public int getElementById(java.lang.String elementId)
- Returns the
ElementwhoseIDis given byelementId. If no such element exists, returnsDTM.NULL. Behavior is not defined if more than one element has thisID. Attributes (including those with the name "ID") are not of type ID unless so defined by DTD/Schema information available to the DTM implementation. Implementations that do not know whether attributes are of type ID or not are expected to returnDTM.NULL.%REVIEW% Presumably IDs are still scoped to a single document, and this operation searches only within a single document, right? Wouldn't want collisions between DTMs in the same process.
getUnparsedEntityURI
public java.lang.String getUnparsedEntityURI(java.lang.String name)
- The getUnparsedEntityURI function returns the URI of the unparsed
entity with the specified name in the same document as the context
node (see [3.3 Unparsed Entities]). It returns the empty string if
there is no such entity.
XML processors may choose to use the System Identifier (if one is provided) to resolve the entity, rather than the URI in the Public Identifier. The details are dependent on the processor, and we would have to support some form of plug-in resolver to handle this properly. Currently, we simply return the System Identifier if present, and hope that it a usable URI or that our caller can map it to one. %REVIEW% Resolve Public Identifiers... or consider changing function name.
If we find a relative URI reference, XML expects it to be resolved in terms of the base URI of the document. The DOM doesn't do that for us, and it isn't entirely clear whether that should be done here; currently that's pushed up to a higher level of our application. (Note that DOM Level 1 didn't store the document's base URI.) %REVIEW% Consider resolving Relative URIs.
(The DOM's statement that "An XML processor may choose to completely expand entities before the structure model is passed to the DOM" refers only to parsed entities, not unparsed, and hence doesn't affect this function.)
supportsPreStripping
public boolean supportsPreStripping()
- Return true if the xsl:strip-space or xsl:preserve-space was processed
during construction of the document contained in this DTM.
NEEDSDOC ($objectName$) @return
isNodeAfter
public boolean isNodeAfter(int firstNodeHandle,
int secondNodeHandle)
- Figure out whether nodeHandle2 should be considered as being later
in the document than nodeHandle1, in Document Order as defined
by the XPath model. This may not agree with the ordering defined
by other XML applications.
There are some cases where ordering isn't defined, and neither are the results of this function -- though we'll generally return true.
%REVIEW% Make sure this does the right thing with attribute nodes!!!
%REVIEW% Consider renaming for clarity. Perhaps isDocumentOrder(a,b)?
isCharacterElementContentWhitespace
public boolean isCharacterElementContentWhitespace(int nodeHandle)
- 2. [element content whitespace] A boolean indicating whether a
text node represents white space appearing within element content
(see [XML], 2.10 "White Space Handling"). Note that validating
XML processors are required by XML 1.0 to provide this
information... but that DOM Level 2 did not support it, since it
depends on knowledge of the DTD which DOM2 could not guarantee
would be available.
If there is no declaration for the containing element, an XML processor must assume that the whitespace could be meaningful and return false. If no declaration has been read, but the [all declarations processed] property of the document information item is false (so there may be an unread declaration), then the value of this property is indeterminate for white space characters and should probably be reported as false. It is always false for text nodes that contain anything other than (or in addition to) white space.
Note too that it always returns false for non-Text nodes.
%REVIEW% Joe wants to rename this isWhitespaceInElementContent() for clarity
isDocumentAllDeclarationsProcessed
public boolean isDocumentAllDeclarationsProcessed(int documentHandle)
- 10. [all declarations processed] This property is not strictly speaking
part of the infoset of the document. Rather it is an indication of
whether the processor has read the complete DTD. Its value is a
boolean. If it is false, then certain properties (indicated in their
descriptions below) may be unknown. If it is true, those properties
are never unknown.
isAttributeSpecified
public boolean isAttributeSpecified(int attributeHandle)
- 5. [specified] A flag indicating whether this attribute was actually
specified in the start-tag of its element, or was defaulted from the
DTD (or schema).
dispatchCharactersEvents
public void dispatchCharactersEvents(int nodeHandle,
org.xml.sax.ContentHandler ch,
boolean normalize)
throws org.xml.sax.SAXException
- Directly call the
characters method on the passed ContentHandler for the
string-value of the given node (see http://www.w3.org/TR/xpath#data-model
for the definition of a node's string-value). Multiple calls to the
ContentHandler's characters methods may well occur for a single call to
this method.
dispatchToEvents
public void dispatchToEvents(int nodeHandle,
org.xml.sax.ContentHandler ch)
throws org.xml.sax.SAXException
- Directly create SAX parser events representing the XML content of
a DTM subtree. This is a "serialize" operation.
getNode
public org.w3c.dom.Node getNode(int nodeHandle)
- Return an DOM node for the given node.
needsTwoThreads
public boolean needsTwoThreads()
getContentHandler
public org.xml.sax.ContentHandler getContentHandler()
- Return this DTM's content handler, if it has one.
getLexicalHandler
public org.xml.sax.ext.LexicalHandler getLexicalHandler()
- Return this DTM's lexical handler, if it has one.
%REVIEW% Should this return null if constrution already done/begun?
getEntityResolver
public org.xml.sax.EntityResolver getEntityResolver()
- Return this DTM's EntityResolver, if it has one.
getDTDHandler
public org.xml.sax.DTDHandler getDTDHandler()
- Return this DTM's DTDHandler, if it has one.
getErrorHandler
public org.xml.sax.ErrorHandler getErrorHandler()
- Return this DTM's ErrorHandler, if it has one.
getDeclHandler
public org.xml.sax.ext.DeclHandler getDeclHandler()
- Return this DTM's DeclHandler, if it has one.
appendChild
public void appendChild(int newChild,
boolean clone,
boolean cloneDepth)
- Append a child to "the end of the document". Please note that
the node is always cloned in a base DTM, since our basic behavior
is immutable so nodes can't be removed from their previous
location.
%REVIEW% DTM maintains an insertion cursor which performs a depth-first tree walk as nodes come in, and this operation is really equivalent to: insertionCursor.appendChild(document.importNode(newChild))) where the insert point is the last element that was appended (or the last one popped back to by an end-element operation).
appendTextChild
public void appendTextChild(java.lang.String str)
- Append a text node child that will be constructed from a string,
to the end of the document. Behavior is otherwise like appendChild().
getSourceLocatorFor
public javax.xml.transform.SourceLocator getSourceLocatorFor(int node)
- Get the location of a node in the source document.
documentRegistration
public void documentRegistration()
- As the DTM is registered with the DTMManager, this method
will be called. This will give the DTM implementation a
chance to initialize any subsystems that are required to
build the DTM
documentRelease
public void documentRelease()
- As documents are released from the DTMManager, the DTM implementation
will be notified of the event. This will allow the DTM implementation
to shutdown any subsystem activity that may of been assoiated with
the active DTM Implementation.
migrateTo
public void migrateTo(DTMManager manager)
- Migrate a DTM built with an old DTMManager to a new DTMManager.
After the migration, the new DTMManager will treat the DTM as
one that is built by itself.
This is used to support DTM sharing between multiple transformations.
|
|||||||||
| Home >> All >> org >> apache >> xml >> [ dtm overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC