public final class TinyElementImpl extends TinyParentNodeImpl
This class is an implementation of NodeInfo. The object is a wrapper around one entry in the arrays maintained by the TinyTree. Note that the same node might be represented by different TinyElementImpl objects at different times.
NODE_LETTER, nodeNr, parent, tree
ALL_NAMESPACES, IS_DTD_TYPE, IS_NILLED, LOCAL_NAMESPACES, NO_NAMESPACES
Constructor and Description |
---|
TinyElementImpl(TinyTree tree,
int nodeNr)
Constructor - create a tiny element node
|
Modifier and Type | Method and Description |
---|---|
AtomicSequence |
atomize()
Get the typed value.
|
void |
copy(Receiver receiver,
int copyOptions,
int locationId)
Copy this node to a given receiver
|
String |
getAttributeValue(int fp)
Get the value of the attribute with a given fingerprint.
|
String |
getAttributeValue(String uri,
String local)
Get the string value of a given attribute of this node
|
String |
getBaseURI()
Get the base URI of this element node.
|
NamespaceBinding[] |
getDeclaredNamespaces(NamespaceBinding[] buffer)
Get all namespace undeclarations and undeclarations defined on this element.
|
static NamespaceBinding[] |
getDeclaredNamespaces(TinyTree tree,
int nodeNr,
NamespaceBinding[] buffer)
Static method to get all namespace undeclarations and undeclarations defined on a given element,
without instantiating the node object.
|
int |
getNodeKind()
Return the type of node.
|
SchemaType |
getSchemaType()
Get the type annotation of this node, if any.
|
int |
getTypeAnnotation()
Get the type annotation of this node, if any
Returns Type.UNTYPED_ANY if there is no type annotation
|
String |
getURIForPrefix(String prefix,
boolean useDefault)
Get the namespace URI corresponding to a given prefix.
|
boolean |
isId()
Determine whether this node has the is-id property
|
boolean |
isIdref()
Determine whether this node has the is-idref property
|
getStringValue, getStringValueCS, getStringValueCS, hasChildNodes
compareOrder, comparePosition, equals, generateId, getColumnNumber, getConfiguration, getDisplayName, getDocumentNumber, getDocumentRoot, getFingerprint, getLineNumber, getLocalPart, getNameCode, getNamePool, getNodeNumber, getParent, getPrefix, getPublicId, getRoot, getSequenceNumber, getSystemId, getTree, getURI, hashCode, head, isAncestorOrSelf, isNilled, isSameNodeInfo, iterate, iterateAxis, iterateAxis, setParentNode, setSystemId
public TinyElementImpl(TinyTree tree, int nodeNr)
tree
- the Tinytree containing the nodenodeNr
- the node numberpublic final int getNodeKind()
Type
public String getBaseURI()
getBaseURI
in interface NodeInfo
getBaseURI
in class TinyNodeImpl
public int getTypeAnnotation()
getTypeAnnotation
in interface NodeInfo
getTypeAnnotation
in class TinyNodeImpl
For elements and attributes, this is the type annotation as defined in XDM. For document nodes, it should be one of XS_UNTYPED if the document has not been validated, or XS_ANY_TYPE if validation has taken place (that is, if any node in the document has an annotation other than Untyped or UntypedAtomic).
public SchemaType getSchemaType()
Types derived from a DTD are not reflected in the result of this method.
getSchemaType
in interface NodeInfo
getSchemaType
in class TinyNodeImpl
public AtomicSequence atomize() throws XPathException
XPathException
- if the node has no typed value, for example if
it is an element node with element-only contentpublic NamespaceBinding[] getDeclaredNamespaces(NamespaceBinding[] buffer)
getDeclaredNamespaces
in interface NodeInfo
getDeclaredNamespaces
in class TinyNodeImpl
buffer
- If this is non-null, and the result array fits in this buffer, then the result
may overwrite the contents of this array, to avoid the cost of allocating a new array on the heap.For a node other than an element, the method returns null.
public static NamespaceBinding[] getDeclaredNamespaces(TinyTree tree, int nodeNr, NamespaceBinding[] buffer)
tree
- The tree containing the given element nodenodeNr
- The node number of the given element node within the tinyTreebuffer
- If this is non-null, and the result array fits in this buffer, then the result
may overwrite the contents of this array, to avoid the cost of allocating a new array on the heap.For a node other than an element, the method returns null.
public String getAttributeValue(String uri, String local)
getAttributeValue
in interface NodeInfo
getAttributeValue
in class TinyNodeImpl
uri
- the namespace URI of the attribute name. Supply the empty string for an attribute
that is in no namespacelocal
- the local part of the attribute name.public String getAttributeValue(int fp)
getAttributeValue
in interface FingerprintedNode
getAttributeValue
in class TinyNodeImpl
fp
- the fingerprint of the required attributepublic void copy(Receiver receiver, int copyOptions, int locationId) throws XPathException
copyOptions
- determines handling of namespaces, etcreceiver
- the Receiver to which the node should be copied. It is the caller's
responsibility to ensure that this Receiver is open before the method is called
(or that it is self-opening), and that it is closed after use.locationId
- If non-zero, identifies the location of the instruction
that requested this copy. If zero, indicates that the location informationXPathException
- if any downstream error occurspublic String getURIForPrefix(String prefix, boolean useDefault)
prefix
- the namespace prefix. May be the zero-length string, indicating
that there is no prefix. This indicates either the default namespace or the
null namespace, depending on the value of useDefault.useDefault
- true if the default namespace is to be used when the
prefix is "". If false, the method returns "" when the prefix is "".public boolean isId()
isId
in interface NodeInfo
isId
in class TinyNodeImpl
public boolean isIdref()
isIdref
in interface NodeInfo
isIdref
in class TinyNodeImpl
Copyright (c) 2004-2014 Saxonica Limited. All rights reserved.