public final class TinyTree extends GenericTreeInfo implements NodeVectorTree
It can be used to represent a tree that is rooted at a document node, or one that is rooted at an element node.
From Saxon 9.7, as a consequence of bug 2220, it is used only to hold a single tree, whose root is always node number zero.
Modifier and Type | Field and Description |
---|---|
byte[] |
nodeKind |
static int |
TYPECODE_IDREF |
root
Constructor and Description |
---|
TinyTree(Configuration config,
Statistics statistics)
Create a tree with a specified initial size
|
Modifier and Type | Method and Description |
---|---|
int |
addTextNodeCopy(int depth,
int existingNodeNr)
Create a new text node that is a copy of an existing text node
|
void |
diagnosticDump()
Produce diagnostic print of main tree arrays
|
static void |
diagnosticDump(NodeInfo node)
Create diagnostic dump of the tree containing a particular node.
|
int[] |
getAlphaArray()
Get the array holding alpha information
|
int[] |
getAttributeNameCodeArray()
Get the array used to hold the name codes of all attributes
|
int[] |
getAttributeParentArray()
Get the array used to hold the parent pointers of all attributes
|
SimpleType[] |
getAttributeTypeArray()
Get the array used to hold the type codes of all attributes
|
java.lang.String[] |
getAttributeValueArray()
Get the array used to hold the name codes of all attributes
|
int[] |
getBetaArray()
Get the array holding beta information
|
LargeTextBuffer |
getCharacterBuffer()
Get the character buffer used to hold all the text data of the document
|
int |
getColumnNumber(int sequence)
Get the column number for a node.
|
UnicodeString |
getCommentBuffer()
Get the character buffer used to hold all the comment data of the document
|
NodeInfo |
getCopiedFrom()
Declare that this tree was produced as a copy of another tree, and identify
the root node of that tree
|
int |
getFingerprint(int nodeNr)
Get the fingerprint for a given node, which must be a document, element,
text, comment, or processing instruction node
|
int |
getLineNumber(int sequence)
Get the line number for a node.
|
java.util.Map<java.lang.String,IntSet> |
getLocalNameIndex()
Get (and build if necessary) an index from local names to fingerprints
|
int |
getNameCode(int nodeNr)
Get the nameCode for a given node, which must be a document, element,
text, comment, or processing instruction node
|
int[] |
getNameCodeArray()
Get the array holding node name information
|
NamePool |
getNamePool() |
NamespaceBinding[] |
getNamespaceBindings()
Get the array used to hold the namespace declarations
|
NamespaceMap[] |
getNamespaceMaps()
Get the array used to hold the in-scope namespaces
|
int[] |
getNamespaceParentArray()
Get the array used to hold the parent pointers of all namespace declarations
|
int[] |
getNextPointerArray()
Get the array holding next-sibling pointers
|
TinyNodeImpl |
getNode(int nr)
Get the node at a given position in the tree
|
short[] |
getNodeDepthArray()
Get the array holding node depth information
|
int |
getNodeKind(int nodeNr)
Get the node kind of a given node, which must be a document, element,
text, comment, or processing instruction node
|
byte[] |
getNodeKindArray()
Get the array holding node kind information
|
int |
getNumberOfAttributes()
Get the number of attributes in the tree
|
int |
getNumberOfNamespaces()
Get the number of namespace declarations in the tree
|
int |
getNumberOfNodes()
Get the number of nodes in the tree, excluding attributes and namespace nodes
|
java.lang.String |
getPrefix(int nodeNr)
Get the prefix for a given element node
|
PrefixPool |
getPrefixPool()
Get the prefix pool
|
NodeInfo |
getRootNode()
Get the NodeInfo object representing the root of the tree (not necessarily a document node)
|
SchemaType |
getSchemaType(int nodeNr)
Get the type annotation of a node.
|
java.lang.String |
getSystemId(int seq)
Get the system id of an element in the document
|
int |
getTypeAnnotation(int nodeNr)
Get the type annotation of a node.
|
SchemaType[] |
getTypeArray()
Get the array holding node type information
|
AtomicSequence |
getTypedValueOfAttribute(TinyAttributeImpl att,
int nodeNr)
Get the typed value of an attribute node.
|
AtomicSequence |
getTypedValueOfElement(int nodeNr)
Get the type value of an element node, given only the node number
|
AtomicSequence |
getTypedValueOfElement(TinyElementImpl element)
Get the typed value of an element node.
|
java.lang.String[] |
getUnparsedEntity(java.lang.String name)
Get the unparsed entity with a given nameID if there is one, or null if not.
|
java.util.Iterator<java.lang.String> |
getUnparsedEntityNames()
Get the list of unparsed entities defined in this document
|
boolean |
hasXmlSpacePreserveAttribute()
Ask whether, somewhere in the tree, there is an attribute xml:space="preserve"
|
void |
indexIDElement(NodeInfo root,
int nodeNr)
Index an element of type xs:ID
|
boolean |
isDefaultedAttribute(int attNr)
Ask whether an attribute results from expansion of attribute defaults
|
boolean |
isIdAttribute(int nr)
Determine whether an attribute is an ID attribute.
|
boolean |
isIdElement(int nr)
Ask whether an element is an ID element.
|
boolean |
isIdrefAttribute(int nr)
Determine whether an attribute is an IDREF/IDREFS attribute.
|
boolean |
isIdrefElement(int nr)
Ask whether an element is an IDREF/IDREFS element.
|
boolean |
isNilled(int nodeNr)
Ask whether a given node is nilled
|
boolean |
isTopWithinEntity(int nodeNr) |
boolean |
isTyped()
Ask whether the document contains any nodes whose type annotation is anything other than
UNTYPED
|
boolean |
isUsesNamespaces()
Ask whether the tree contains any namespace declarations
|
void |
markDefaultedAttribute(int attNr)
Mark an attribute as resulting from expansion of attribute defaults
|
void |
markTopWithinEntity(int nodeNr) |
NodeInfo |
selectID(java.lang.String id,
boolean getParent)
Get the element with a given ID.
|
void |
setConfiguration(Configuration config)
Set the Configuration that contains this document
|
void |
setCopiedFrom(NodeInfo copiedFrom)
Declare that this tree was produced as a copy of another tree, and identify
the root node of that tree
|
void |
setLineNumbering()
Set line numbering on
|
void |
setNilled(int nodeNr)
Set an element node to be marked as nilled
|
void |
showSize()
Output a statistical summary to System.err
|
getConfiguration, getDocumentNumber, getPublicId, getSpaceStrippingRule, getSystemId, getUserData, isStreamed, setDocumentNumber, setRootNode, setSpaceStrippingRule, setSystemId, setUserData
public byte[] nodeKind
public static final int TYPECODE_IDREF
public TinyTree(Configuration config, Statistics statistics)
config
- the Saxon configurationstatistics
- the size parameters for the treepublic void setConfiguration(Configuration config)
setConfiguration
in class GenericTreeInfo
config
- the Saxon configurationpublic PrefixPool getPrefixPool()
public void setCopiedFrom(NodeInfo copiedFrom)
copiedFrom
- the root of the tree from which this one was copiedpublic NodeInfo getCopiedFrom()
public int addTextNodeCopy(int depth, int existingNodeNr)
depth
- the depth of the new nodeexistingNodeNr
- the node to be copiedpublic int getTypeAnnotation(int nodeNr)
nodeNr
- the node whose type annotation is requiredpublic SchemaType getSchemaType(int nodeNr)
nodeNr
- the node whose type annotation is requiredpublic AtomicSequence getTypedValueOfElement(TinyElementImpl element) throws XPathException
element
- the element nodeXPathException
- if a dynamic error occurs, for example if the node is
an element annotated with a type that has element-only contentpublic AtomicSequence getTypedValueOfElement(int nodeNr) throws XPathException
nodeNr
- the node number of the element nodeXPathException
- if the eement has no typed valuepublic AtomicSequence getTypedValueOfAttribute(TinyAttributeImpl att, int nodeNr) throws XPathException
att
- the attribute node if available. If null is supplied, the attribute node
will be materialized only if it is needed.nodeNr
- the node number of the attribute nodeXPathException
- if an error is foundpublic int getNodeKind(int nodeNr)
getNodeKind
in interface NodeVectorTree
nodeNr
- the node numberpublic int getNameCode(int nodeNr)
nodeNr
- the node numberpublic int getFingerprint(int nodeNr)
getFingerprint
in interface NodeVectorTree
nodeNr
- the node numberpublic java.lang.String getPrefix(int nodeNr)
nodeNr
- the node numberpublic void markDefaultedAttribute(int attNr)
attNr
- the attribute numberpublic boolean isDefaultedAttribute(int attNr)
attNr
- the attribute numberFeatureKeys.EXPAND_ATTRIBUTE_DEFAULTS
and FeatureKeys.MARK_DEFAULTED_ATTRIBUTES
are set.public void indexIDElement(NodeInfo root, int nodeNr)
root
- the root node of the documentnodeNr
- the element of type xs:IDpublic boolean hasXmlSpacePreserveAttribute()
public final TinyNodeImpl getNode(int nr)
getNode
in interface NodeVectorTree
nr
- the node numberpublic boolean isIdAttribute(int nr)
nr
- the node number of the attributepublic boolean isIdrefAttribute(int nr)
nr
- the node number of the attributepublic boolean isIdElement(int nr)
nr
- the element node whose is-id property is requiredpublic boolean isIdrefElement(int nr)
nr
- the element node whose is-idref property is requiredpublic java.lang.String getSystemId(int seq)
seq
- the node number of the element nodepublic NodeInfo getRootNode()
GenericTreeInfo
getRootNode
in interface TreeInfo
getRootNode
in class GenericTreeInfo
public void setLineNumbering()
public int getLineNumber(int sequence)
sequence
- the node numberpublic int getColumnNumber(int sequence)
sequence
- the node numberpublic void setNilled(int nodeNr)
nodeNr
- the node number to be marked as nilledpublic boolean isNilled(int nodeNr)
nodeNr
- the node in question (which must be an element node)public NodeInfo selectID(java.lang.String id, boolean getParent)
selectID
in interface TreeInfo
selectID
in class GenericTreeInfo
id
- The unique ID of the required element, previously registered using registerID()getParent
- true if the required element is the parent of the element of type IDpublic java.util.Iterator<java.lang.String> getUnparsedEntityNames()
getUnparsedEntityNames
in interface TreeInfo
getUnparsedEntityNames
in class GenericTreeInfo
public java.lang.String[] getUnparsedEntity(java.lang.String name)
getUnparsedEntity
in interface TreeInfo
getUnparsedEntity
in class GenericTreeInfo
name
- the name of the entitypublic NamePool getNamePool()
public void markTopWithinEntity(int nodeNr)
public boolean isTopWithinEntity(int nodeNr)
public void diagnosticDump()
public static void diagnosticDump(NodeInfo node)
node
- the node in questionpublic void showSize()
public boolean isTyped()
isTyped
in interface TreeInfo
isTyped
in interface NodeVectorTree
public int getNumberOfNodes()
public int getNumberOfAttributes()
public int getNumberOfNamespaces()
public byte[] getNodeKindArray()
getNodeKindArray
in interface NodeVectorTree
public short[] getNodeDepthArray()
public int[] getNameCodeArray()
getNameCodeArray
in interface NodeVectorTree
public SchemaType[] getTypeArray()
public int[] getNextPointerArray()
public int[] getAlphaArray()
public int[] getBetaArray()
public LargeTextBuffer getCharacterBuffer()
public UnicodeString getCommentBuffer()
public int[] getAttributeNameCodeArray()
public SimpleType[] getAttributeTypeArray()
public int[] getAttributeParentArray()
public java.lang.String[] getAttributeValueArray()
public NamespaceBinding[] getNamespaceBindings()
public NamespaceMap[] getNamespaceMaps()
public int[] getNamespaceParentArray()
public boolean isUsesNamespaces()
public java.util.Map<java.lang.String,IntSet> getLocalNameIndex()
Copyright (c) 2004-2022 Saxonica Limited. All rights reserved.