public final class SAXImpl extends SAX2DTM2 implements DOMEnhancedForDTM, DOMBuilder
DOMSource inputs are handled using DOM2SAX + SAXImpl. SAXImpl has a few specific fields (e.g. _node2Ids, _document) to keep DOM-related information. They are used when the processing behavior between DOM and SAX has to be different. Examples of these include id function and unparsed entity.
SAXImpl extends SAX2DTM2 instead of SAX2DTM for better performance.
Modifier and Type | Class and Description |
---|---|
class |
SAXImpl.NamespaceAttributeIterator
Iterator that returns attributes within a given namespace for a node.
|
class |
SAXImpl.NamespaceChildrenIterator
Iterator that returns children within a given namespace for a
given node.
|
class |
SAXImpl.NamespaceWildcardIterator
Iterator that handles node tests that test for a namespace, but have
a wild card for the local name of the node, i.e., node tests of the
form
|
class |
SAXImpl.TypedNamespaceIterator
Iterator that returns the namespace nodes as defined by the XPath data
model for a given node, filtered by extended type ID.
|
SAX2DTM2.AncestorIterator, SAX2DTM2.AttributeIterator, SAX2DTM2.ChildrenIterator, SAX2DTM2.DescendantIterator, SAX2DTM2.FollowingIterator, SAX2DTM2.FollowingSiblingIterator, SAX2DTM2.ParentIterator, SAX2DTM2.PrecedingIterator, SAX2DTM2.PrecedingSiblingIterator, SAX2DTM2.TypedAncestorIterator, SAX2DTM2.TypedAttributeIterator, SAX2DTM2.TypedChildrenIterator, SAX2DTM2.TypedDescendantIterator, SAX2DTM2.TypedFollowingIterator, SAX2DTM2.TypedFollowingSiblingIterator, SAX2DTM2.TypedPrecedingIterator, SAX2DTM2.TypedPrecedingSiblingIterator, SAX2DTM2.TypedRootIterator, SAX2DTM2.TypedSingletonIterator
DTMDefaultBaseIterators.InternalAxisIteratorBase, DTMDefaultBaseIterators.NamespaceIterator, DTMDefaultBaseIterators.NthDescendantIterator, DTMDefaultBaseIterators.RootIterator, DTMDefaultBaseIterators.SingletonIterator
m_blocksize, m_buildIdIndex, m_extendedTypes, m_MASK, m_SHIFT, m_values, TEXT_LENGTH_BITS, TEXT_LENGTH_MAX, TEXT_OFFSET_BITS, TEXT_OFFSET_MAX
m_chars, m_coalescedTextType, m_contextIndexes, m_data, m_dataOrQName, m_endDocumentOccured, m_idAttributes, m_insideDTD, m_locator, m_parents, m_prefixMappings, m_previous, m_sourceColumn, m_sourceLine, m_sourceSystemId, m_textPendingStart, m_textType, m_useSourceLocationProperty, m_valuesOrPrefixes, m_walker
DEFAULT_BLOCKSIZE, DEFAULT_NUMBLOCKS, DEFAULT_NUMBLOCKS_SMALL, m_documentBaseURI, m_dtmIdent, m_elemIndexes, m_expandedNameTable, m_exptype, m_firstch, m_indexing, m_mgr, m_mgrDefault, m_namespaceDeclSetElements, m_namespaceDeclSets, m_nextsib, m_parent, m_prevsib, m_shouldStripWhitespaceStack, m_shouldStripWS, m_size, m_traversers, m_wsfilter, m_xstrf, NOTPROCESSED, ROOTNODE
ADAPTIVE_RTF, FIRST_TYPE, NO_TYPE, NULL, RETURN_CURRENT, RETURN_PARENT, SIMPLE_RTF, TREE_RTF
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NAMESPACE_NODE, NOTATION_NODE, NTYPES, NULL, PROCESSING_INSTRUCTION_NODE, ROOT_NODE, TEXT_NODE
Constructor and Description |
---|
SAXImpl(XSLTCDTMManager mgr,
Source source,
int dtmIdentity,
DTMWSFilter whiteSpaceFilter,
XMLStringFactory xstringfactory,
boolean doIndexing,
boolean buildIdIndex)
Construct a SAXImpl object using the default block size.
|
SAXImpl(XSLTCDTMManager mgr,
Source source,
int dtmIdentity,
DTMWSFilter whiteSpaceFilter,
XMLStringFactory xstringfactory,
boolean doIndexing,
int blocksize,
boolean buildIdIndex,
boolean newNameTable)
Construct a SAXImpl object using the given block size.
|
Modifier and Type | Method and Description |
---|---|
void |
characters(char[] ch,
int start,
int length)
SAX2: Receive notification of character data.
|
void |
characters(int node,
SerializationHandler handler)
Copy the string value of a node directly to an output handler
|
void |
comment(char[] ch,
int start,
int length)
SAX2: Report an XML comment anywhere in the document.
|
void |
copy(DTMAxisIterator nodes,
SerializationHandler handler)
Copy a node-set to an output handler
|
void |
copy(int node,
SerializationHandler handler)
Performs a deep copy (ref.
|
void |
copy(SerializationHandler handler)
Copy the whole tree to an output handler
|
void |
endDocument()
SAX2: Receive notification of the end of a document.
|
void |
endElement(String namespaceURI,
String localName,
String qname)
SAX2: Receive notification of the end of an element.
|
int |
getAttributeNode(int type,
int element)
Returns the attribute node of a given type (if any) for an element
|
String |
getAttributeValue(int type,
int element)
Returns the value of a given attribute type of a given element
|
String |
getAttributeValue(String name,
int element)
This method is for testing/debugging only
|
DTMAxisIterator |
getAxisIterator(int axis)
This is a shortcut to the iterators that implement the
supported XPath axes (only namespace::) is not supported.
|
DOMBuilder |
getBuilder()
Returns an instance of the DOMBuilder inner class
This class will consume the input document through a SAX2
interface and populate the tree.
|
DTMAxisIterator |
getChildren(int node)
Returns an iterator with all the children of a given node
|
String |
getDocumentURI()
Returns the origin of the document from which the tree was built
|
String |
getDocumentURI(int node) |
int |
getElementById(String idString)
Return the node identity for a given id String
|
Hashtable |
getElementsWithIDs()
%HZ% Need Javadoc
|
int |
getGeneralizedType(String name)
Returns the internal type associated with an expanded QName
|
int |
getGeneralizedType(String name,
boolean searchOnly)
Returns the internal type associated with an expanded QName
|
DTMAxisIterator |
getIterator()
Returns singleton iterator containg the document root
Works for them main document (mark == 0).
|
String |
getLanguage(int node)
Returns a node' defined language for a node (if any)
|
short[] |
getMapping(String[] names,
String[] uris,
int[] types)
Get mapping from DOM element/attribute types to external types
|
DTMAxisIterator |
getNamespaceAxisIterator(int axis,
int ns)
Do not think that this returns an iterator for the namespace axis.
|
short[] |
getNamespaceMapping(String[] namespaces)
Get mapping from DOM namespace types to external namespace types
|
String |
getNamespaceName(int node)
Returns the namespace URI to which a node belongs
|
int |
getNamespaceType(int node)
Returns the namespace type of a specific node
|
String |
getNodeName(int node)
Returns the name of a node (attribute or element).
|
DTMAxisIterator |
getNodeValueIterator(DTMAxisIterator iterator,
int type,
String value,
boolean op) |
int |
getNSType(int node)
Get mapping from DOM namespace types to external namespace types
|
DTMAxisIterator |
getNthDescendant(int type,
int n,
boolean includeself)
Returns the nth descendant of a node
|
SerializationHandler |
getOutputDomBuilder()
Return a SerializationHandler for output handling.
|
DOM |
getResultTreeFrag(int initSize,
int rtfType)
Return a instance of a DOM class to be used as an RTF
|
DOM |
getResultTreeFrag(int initSize,
int rtfType,
boolean addToManager)
Return a instance of a DOM class to be used as an RTF
|
int[] |
getReverseMapping(String[] names,
String[] uris,
int[] types)
Get mapping from external element/attribute types to DOM types
|
short[] |
getReverseNamespaceMapping(String[] namespaces)
Get mapping from external namespace types to DOM namespace types
|
protected boolean |
getShouldStripWhitespace()
Find out whether or not to strip whitespace nodes.
|
int |
getSize()
Returns the number of nodes in the tree (used for indexing)
|
DTMAxisIterator |
getTypedAxisIterator(int axis,
int type)
Similar to getAxisIterator, but this one returns an iterator
containing nodes of a typed axis (ex.: child::foo)
|
DTMAxisIterator |
getTypedChildren(int type)
Returns an iterator with all children of a specific type
for a given node (element)
|
DTMAxisIterator |
getTypedDescendantIterator(int type)
Returns an iterator with all descendants of a node that are of
a given type.
|
String |
getUnparsedEntityURI(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 |
hasDOMSource()
Return true if the input source is DOMSource.
|
void |
ignorableWhitespace(char[] ch,
int start,
int length)
SAX2: Receive notification of ignorable whitespace in element
content.
|
boolean |
isAttribute(int node)
Returns 'true' if a specific node is an attribute (of any type)
|
boolean |
isElement(int node)
Returns 'true' if a specific node is an element (of any type)
|
boolean |
lessThan(int node1,
int node2)
Returns true if node1 comes before node2 in document order
|
String |
lookupNamespace(int node,
String prefix)
Lookup a namespace URI from a prefix starting at node.
|
Node |
makeNode(DTMAxisIterator iter)
Create an org.w3c.dom.Node from a node in an iterator
The iterator most be started before this method is called
|
Node |
makeNode(int index)
Create an org.w3c.dom.Node from a node in the tree
|
NodeList |
makeNodeList(DTMAxisIterator iter)
Create an org.w3c.dom.NodeList from a node iterator
The iterator most be started before this method is called
|
NodeList |
makeNodeList(int index)
Create an org.w3c.dom.NodeList from a node in the tree
|
void |
migrateTo(DTMManager manager)
Migrate a DTM built with an old DTMManager to a new DTMManager.
|
DTMAxisIterator |
orderNodes(DTMAxisIterator source,
int node)
Encapsulates an iterator in an OrderedIterator to ensure node order
|
void |
print(int node,
int level)
Prints the whole tree to standard output
|
void |
processingInstruction(String target,
String data)
SAX2: Receive notification of a processing instruction.
|
void |
setDocumentURI(String uri)
Define the origin of the document from which the tree was built
|
boolean |
setEscaping(boolean value) |
void |
setFilter(StripFilter filter)
Part of the DOM interface - no function here.
|
void |
setupMapping(String[] names,
String[] urisArray,
int[] typesArray,
String[] namespaces) |
String |
shallowCopy(int node,
SerializationHandler handler)
Performs a shallow copy (ref.
|
void |
startDocument()
SAX2: Receive notification of the beginning of a document.
|
void |
startElement(String uri,
String localName,
String qname,
Attributes attributes)
SAX2: Receive notification of the beginning of an element.
|
void |
startElement(String uri,
String localName,
String qname,
Attributes attributes,
Node node)
Specialized interface used by DOM2SAX.
|
void |
startPrefixMapping(String prefix,
String uri)
SAX2: Begin the scope of a prefix-URI Namespace mapping.
|
_exptype, _exptype2, _exptype2Type, _firstch2, _nextsib2, _parent2, _type2, addNode, charactersFlush, copyAttribute, copyAttributes, copyElement, copyNS, copyTextNode, dispatchCharactersEvents, getExpandedTypeID2, getFirstAttribute, getFirstAttributeIdentity, getIdForNamespace, getLocalName, getNextAttributeIdentity, getNextNamespaceNode2, getNodeNameX, getNodeValue, getStringValue, getStringValue, getStringValueX, getTypedAttribute
_dataOrQName, addNewDTMID, attributeDecl, clearCoRoutine, clearCoRoutine, declAlreadyDeclared, dispatchToEvents, elementDecl, endCDATA, endDTD, endEntity, endPrefixMapping, error, externalEntityDecl, fatalError, getAttributeNode, getContentHandler, getDeclHandler, getDocumentTypeDeclarationPublicIdentifier, getDocumentTypeDeclarationSystemIdentifier, getDTDHandler, getEntityResolver, getErrorHandler, getFixedNames, getLexicalHandler, getNamespaceURI, getNamespaceURI, getNextNodeIdentity, getNumberOfNodes, getPrefix, getPrefix, getSourceLocatorFor, internalEntityDecl, isAttributeSpecified, isWhitespace, needsTwoThreads, nextNode, notationDecl, resolveEntity, setDocumentLocator, setIDAttribute, setIncrementalSAXSource, setProperty, setSourceLocation, setUseSourceLocation, skippedEntity, startCDATA, startDTD, startEntity, unparsedEntityDecl, warning
getAxisTraverser
_firstch, _level, _nextsib, _parent, _prevsib, _type, appendChild, appendTextChild, declareNamespaceInContext, documentRegistration, documentRelease, dumpDTM, dumpNode, ensureSizeOfIndex, error, findGTE, findInSortedSuballocatedIntVector, findNamespaceContext, getDocument, getDocumentAllDeclarationsProcessed, getDocumentBaseURI, getDocumentEncoding, getDocumentRoot, getDocumentStandalone, getDocumentSystemIdentifier, getDocumentVersion, getDTMIDs, getExpandedTypeID, getExpandedTypeID, getFirstChild, getFirstNamespaceNode, getLastChild, getLevel, getLocalNameFromExpandedNameID, getManager, getNamespaceFromExpandedNameID, getNextAttribute, getNextNamespaceNode, getNextSibling, getNode, getNodeHandle, getNodeIdent, getNodeType, getOwnerDocument, getParent, getPreviousSibling, getStringValueChunk, getStringValueChunkCount, getTypedFirstChild, getTypedNextSibling, hasChildNodes, indexNode, isCharacterElementContentWhitespace, isDocumentAllDeclarationsProcessed, isNodeAfter, isSupported, makeNodeHandle, makeNodeIdentity, popShouldStripWhitespace, pushShouldStripWhitespace, setDocumentBaseURI, setFeature, setShouldStripWhitespace, supportsPreStripping
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getExpandedTypeID2
getDocument, getExpandedTypeID, getNodeHandle, getNodeIdent, getNodeNameX, getParent, getStringValue, getStringValueX
endPrefixMapping, setDocumentLocator, skippedEntity
endCDATA, endDTD, endEntity, startCDATA, startDTD, startEntity
notationDecl, unparsedEntityDecl
attributeDecl, elementDecl, externalEntityDecl, internalEntityDecl
public SAXImpl(XSLTCDTMManager mgr, Source source, int dtmIdentity, DTMWSFilter whiteSpaceFilter, XMLStringFactory xstringfactory, boolean doIndexing, boolean buildIdIndex)
public SAXImpl(XSLTCDTMManager mgr, Source source, int dtmIdentity, DTMWSFilter whiteSpaceFilter, XMLStringFactory xstringfactory, boolean doIndexing, int blocksize, boolean buildIdIndex, boolean newNameTable)
public void setDocumentURI(String uri)
setDocumentURI
in interface DOMEnhancedForDTM
public String getDocumentURI()
getDocumentURI
in interface DOMEnhancedForDTM
public String getDocumentURI(int node)
getDocumentURI
in interface DOM
public void setupMapping(String[] names, String[] urisArray, int[] typesArray, String[] namespaces)
setupMapping
in interface DOM
public String lookupNamespace(int node, String prefix) throws TransletException
lookupNamespace
in interface DOM
TransletException
public boolean isElement(int node)
public boolean isAttribute(int node)
isAttribute
in interface DOM
public int getSize()
public void setFilter(StripFilter filter)
public boolean lessThan(int node1, int node2)
public Node makeNode(int index)
public Node makeNode(DTMAxisIterator iter)
public NodeList makeNodeList(int index)
makeNodeList
in interface DOM
public NodeList makeNodeList(DTMAxisIterator iter)
makeNodeList
in interface DOM
public DTMAxisIterator getNodeValueIterator(DTMAxisIterator iterator, int type, String value, boolean op)
getNodeValueIterator
in interface DOM
public DTMAxisIterator orderNodes(DTMAxisIterator source, int node)
orderNodes
in interface DOM
public DTMAxisIterator getIterator()
getIterator
in interface DOM
public int getNSType(int node)
public int getNamespaceType(int node)
getNamespaceType
in interface DOM
getNamespaceType
in class DTMDefaultBase
node
- the id of the node.public int getGeneralizedType(String name)
public int getGeneralizedType(String name, boolean searchOnly)
public short[] getMapping(String[] names, String[] uris, int[] types)
getMapping
in interface DOMEnhancedForDTM
public int[] getReverseMapping(String[] names, String[] uris, int[] types)
getReverseMapping
in interface DOMEnhancedForDTM
public short[] getNamespaceMapping(String[] namespaces)
getNamespaceMapping
in interface DOMEnhancedForDTM
public short[] getReverseNamespaceMapping(String[] namespaces)
getReverseNamespaceMapping
in interface DOMEnhancedForDTM
public void migrateTo(DTMManager manager)
public int getElementById(String idString)
getElementById
in interface DOMEnhancedForDTM
getElementById
in interface DTM
getElementById
in class SAX2DTM
idString
- The id Stringpublic boolean hasDOMSource()
hasDOMSource
in interface DOMEnhancedForDTM
protected boolean getShouldStripWhitespace()
getShouldStripWhitespace
in class DTMDefaultBase
public void characters(char[] ch, int start, int length) throws SAXException
characters
in interface ContentHandler
characters
in class SAX2DTM
ch
- The characters.start
- The start position in the character array.length
- The number of characters to use from the
character array.SAXException
- Any SAX exception, possibly
wrapping another exception.ContentHandler.characters(char[], int, int)
public void startDocument() throws SAXException
startDocument
in interface ContentHandler
startDocument
in class SAX2DTM2
SAXException
- Any SAX exception, possibly
wrapping another exception.ContentHandler.startDocument()
public void endDocument() throws SAXException
endDocument
in interface ContentHandler
endDocument
in class SAX2DTM2
SAXException
- Any SAX exception, possibly
wrapping another exception.ContentHandler.endDocument()
public void startElement(String uri, String localName, String qname, Attributes attributes, Node node) throws SAXException
SAXException
public void startElement(String uri, String localName, String qname, Attributes attributes) throws SAXException
startElement
in interface ContentHandler
startElement
in class SAX2DTM2
uri
- The Namespace URI, or the empty string if the
element has no Namespace URI or if Namespace
processing is not being performed.localName
- The local name (without prefix), or the
empty string if Namespace processing is not being
performed.qname
- The qualified name (with prefix), or the
empty string if qualified names are not available.attributes
- The specified or defaulted attributes.SAXException
- Any SAX exception, possibly
wrapping another exception.ContentHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
public void endElement(String namespaceURI, String localName, String qname) throws SAXException
endElement
in interface ContentHandler
endElement
in class SAX2DTM2
namespaceURI
- The Namespace URI, or the empty string if the
element has no Namespace URI or if Namespace
processing is not being performed.localName
- The local name (without prefix), or the
empty string if Namespace processing is not being
performed.qname
- The qualified XML 1.0 name (with prefix), or the
empty string if qualified names are not available.SAXException
- Any SAX exception, possibly
wrapping another exception.ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)
public void processingInstruction(String target, String data) throws SAXException
processingInstruction
in interface ContentHandler
processingInstruction
in class SAX2DTM2
target
- The processing instruction target.data
- The processing instruction data, or null if
none is supplied.SAXException
- Any SAX exception, possibly
wrapping another exception.ContentHandler.processingInstruction(java.lang.String, java.lang.String)
public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
ignorableWhitespace
in interface ContentHandler
ignorableWhitespace
in class SAX2DTM
ch
- The whitespace characters.start
- The start position in the character array.length
- The number of characters to use from the
character array.SAXException
- Any SAX exception, possibly
wrapping another exception.ContentHandler.ignorableWhitespace(char[], int, int)
public void startPrefixMapping(String prefix, String uri) throws SAXException
startPrefixMapping
in interface ContentHandler
startPrefixMapping
in class SAX2DTM
prefix
- The Namespace prefix being declared.uri
- The Namespace URI mapped to the prefix.SAXException
- Any SAX exception, possibly
wrapping another exception.ContentHandler.startPrefixMapping(java.lang.String, java.lang.String)
public void comment(char[] ch, int start, int length) throws SAXException
comment
in interface LexicalHandler
comment
in class SAX2DTM2
ch
- An array holding the characters in the comment.start
- The starting position in the array.length
- The number of characters to use from the array.SAXException
- The application may raise an exception.public boolean setEscaping(boolean value)
public void print(int node, int level)
public String getNodeName(int node)
getNodeName
in interface DOM
getNodeName
in interface DTM
getNodeName
in class SAX2DTM2
node
- the id of the node.public String getNamespaceName(int node)
getNamespaceName
in interface DOM
public int getAttributeNode(int type, int element)
getAttributeNode
in interface DOM
public String getAttributeValue(int type, int element)
public String getAttributeValue(String name, int element)
public DTMAxisIterator getChildren(int node)
getChildren
in interface DOM
public DTMAxisIterator getTypedChildren(int type)
getTypedChildren
in interface DOM
public DTMAxisIterator getAxisIterator(int axis)
getAxisIterator
in interface DOM
getAxisIterator
in interface DTM
getAxisIterator
in class DTMDefaultBaseIterators
axis
- One of Axes.ANCESTORORSELF, etc.public DTMAxisIterator getTypedAxisIterator(int axis, int type)
getTypedAxisIterator
in interface DOM
getTypedAxisIterator
in interface DTM
getTypedAxisIterator
in class DTMDefaultBaseIterators
axis
- One of Axes.ANCESTORORSELF, etc.type
- An extended type ID.public DTMAxisIterator getNamespaceAxisIterator(int axis, int ns)
getNamespaceAxisIterator
in interface DOM
public DTMAxisIterator getTypedDescendantIterator(int type)
public DTMAxisIterator getNthDescendant(int type, int n, boolean includeself)
getNthDescendant
in interface DOM
public void characters(int node, SerializationHandler handler) throws TransletException
characters
in interface DOM
TransletException
public void copy(DTMAxisIterator nodes, SerializationHandler handler) throws TransletException
copy
in interface DOM
TransletException
public void copy(SerializationHandler handler) throws TransletException
TransletException
public void copy(int node, SerializationHandler handler) throws TransletException
copy
in interface DOM
TransletException
public String shallowCopy(int node, SerializationHandler handler) throws TransletException
shallowCopy
in interface DOM
TransletException
public String getLanguage(int node)
getLanguage
in interface DOM
public DOMBuilder getBuilder()
public SerializationHandler getOutputDomBuilder()
getOutputDomBuilder
in interface DOM
public DOM getResultTreeFrag(int initSize, int rtfType)
getResultTreeFrag
in interface DOM
public DOM getResultTreeFrag(int initSize, int rtfType, boolean addToManager)
getResultTreeFrag
in interface DOM
initSize
- The initial size of the DOM.rtfType
- The type of the RTFaddToManager
- true if the RTF should be registered with the DTMManager.public Hashtable getElementsWithIDs()
getElementsWithIDs
in interface DOM
public String getUnparsedEntityURI(String name)
getUnparsedEntityURI
in interface DOM
getUnparsedEntityURI
in interface DTM
getUnparsedEntityURI
in class SAX2DTM
name
- A string containing the Entity Name of the unparsed
entity.Copyright © 2019 JBoss by Red Hat. All rights reserved.