com.icl.saxon.tinytree

Class TinyAttributeImpl

Implemented Interfaces:
Attr, DOMLocator, Node, NodeInfo, Source, SourceLocator

(package private) final class TinyAttributeImpl
extends TinyNodeImpl
implements Attr

A node in the XML parse tree representing an attribute. Note that this is generated only "on demand", when the attribute is selected by a select pattern.

Author:
Michael H. Kay

Field Summary

Fields inherited from class com.icl.saxon.tinytree.TinyNodeImpl

document, nodeNr, parent

Fields inherited from class com.icl.saxon.om.AbstractNode

NODE_LETTER

Fields inherited from interface com.icl.saxon.om.NodeInfo

ATTRIBUTE, COMMENT, ELEMENT, NAMESPACE, NODE, NONE, NUMBER_OF_TYPES, PI, ROOT, TEXT

Constructor Summary

TinyAttributeImpl(TinyDocumentImpl doc, int nodeNr)

Method Summary

void
copy(Outputter out)
Copy this node to a given outputter
String
generateId()
Generate id.
String
getDisplayName()
Get the display name of this node.
int
getFingerprint()
Get the fingerprint of the node, used for matching names
int
getLineNumber()
Get the line number of the node within its source document entity
String
getLocalName()
Get the local name of this node.
int
getNameCode()
Get the name code of the node, used for finding names in the name pool
short
getNodeType()
Return the type of node.
NodeInfo
getParent()
Get the parent node
String
getPrefix()
Get the prefix part of the name of this node.
org.w3c.dom.TypeInfo
getSchemaTypeInfo()
The type information associated with this attribute.
protected long
getSequenceNumber()
Get the node sequence number (in document order).
String
getStringValue()
Return the character value of the node.
String
getURI()
Get the URI part of the name of this node.
boolean
isId()
Returns whether this attribute is known to be of type ID (i.e.

Methods inherited from class com.icl.saxon.tinytree.TinyNodeImpl

compareOrder, generateId, getAttributeValue, getAttributeValue, getBaseURI, getDisplayName, getDocumentRoot, getEnumeration, getFingerprint, getLineNumber, getLocalName, getNameCode, getOriginatingNode, getParent, getPrefix, getSequenceNumber, getSystemId, getURI, hasAttributes, hasChildNodes, isSameNodeInfo, outputNamespaceNodes, setLineNumber, setParentNode, setSystemId

Methods inherited from class com.icl.saxon.om.AbstractNode

appendChild, appendData, cloneNode, compareDocumentPosition, compareOrder, copyStringValue, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, disallowUpdate, generateId, getAttribute, getAttributeNS, getAttributeNode, getAttributeNodeNS, getAttributeValue, getAttributeValue, getAttributes, getBaseURI, getChildNodes, getColumnNumber, getData, getDisplayName, getDoctype, getDocumentElement, getDocumentRoot, getElementById, getElementsByTagName, getElementsByTagNameNS, getEnumeration, getFeature, getFingerprint, getFirstChild, getImplementation, getLastChild, getLength, getLineNumber, getLocalName, getName, getNameCode, getNamespaceURI, getNextSibling, getNodeName, getNodeValue, getOriginatingNode, getOwnerDocument, getOwnerElement, getParent, getParentNode, getPrefix, getPreviousSibling, getPublicId, getSchemaTypeInfo, getSpecified, getSystemId, getTagName, getTextContent, getURI, getUserData, getValue, getWholeText, hasAttribute, hasAttributeNS, hasAttributes, hasChildNodes, importNode, insertBefore, insertData, isDefaultNamespace, isElementContentWhitespace, isEqualNode, isId, isSameNode, isSameNodeInfo, isSupported, lookupNamespaceURI, lookupPrefix, normalize, outputNamespaceNodes, removeAttribute, removeAttributeNS, removeAttributeNode, removeChild, replaceChild, replaceData, replaceWholeText, setAttributeNS, setAttributeNode, setAttributeNodeNS, setData, setIdAttribute, setIdAttributeNS, setIdAttributeNode, setNodeValue, setPrefix, setTextContent, setUserData, setValue, splitText, substringData, supports

Constructor Details

TinyAttributeImpl

public TinyAttributeImpl(TinyDocumentImpl doc,
                         int nodeNr)

Method Details

copy

public void copy(Outputter out)
            throws TransformerException
Copy this node to a given outputter
Specified by:
copy in interface NodeInfo

generateId

public String generateId()
Generate id. Returns key of owning element with the attribute name as a suffix
Specified by:
generateId in interface NodeInfo
Overrides:
generateId in interface TinyNodeImpl

getDisplayName

public String getDisplayName()
Get the display name of this node. For elements and attributes this is [prefix:]localname. For unnamed nodes, it is an empty string.
Specified by:
getDisplayName in interface NodeInfo
Overrides:
getDisplayName in interface TinyNodeImpl
Returns:
The display name of this node. For a node with no name, return an empty string.

getFingerprint

public int getFingerprint()
Get the fingerprint of the node, used for matching names
Specified by:
getFingerprint in interface NodeInfo
Overrides:
getFingerprint in interface TinyNodeImpl

getLineNumber

public int getLineNumber()
Get the line number of the node within its source document entity
Specified by:
getLineNumber in interface NodeInfo
Overrides:
getLineNumber in interface TinyNodeImpl

getLocalName

public String getLocalName()
Get the local name of this node.
Specified by:
getLocalName in interface NodeInfo
Overrides:
getLocalName in interface TinyNodeImpl
Returns:
The local name of this node. For a node with no name, return an empty string.

getNameCode

public int getNameCode()
Get the name code of the node, used for finding names in the name pool
Specified by:
getNameCode in interface NodeInfo
Overrides:
getNameCode in interface TinyNodeImpl

getNodeType

public final short getNodeType()
Return the type of node.
Specified by:
getNodeType in interface NodeInfo
Returns:
Node.ATTRIBUTE

getParent

public NodeInfo getParent()
Get the parent node
Specified by:
getParent in interface NodeInfo
Overrides:
getParent in interface TinyNodeImpl

getPrefix

public String getPrefix()
Get the prefix part of the name of this node. This is the name before the ":" if any.
Specified by:
getPrefix in interface NodeInfo
Overrides:
getPrefix in interface TinyNodeImpl
Returns:
the prefix part of the name. For an unnamed node, return null.

getSchemaTypeInfo

public org.w3c.dom.TypeInfo getSchemaTypeInfo()
The type information associated with this attribute. While the type information contained in this attribute is guarantee to be correct after loading the document or invoking Document.normalizeDocument(), schemaTypeInfo may not be reliable if the node was moved.
Overrides:
getSchemaTypeInfo in interface AbstractNode
Since:
DOM Level 3

getSequenceNumber

protected long getSequenceNumber()
Get the node sequence number (in document order). Sequence numbers are monotonic but not consecutive. In the current implementation, parent nodes (elements and roots) have a zero least-significant word, while namespaces, attributes, text nodes, comments, and PIs have the top word the same as their owner and the bottom half reflecting their relative position.
Overrides:
getSequenceNumber in interface TinyNodeImpl

getStringValue

public String getStringValue()
Return the character value of the node.
Specified by:
getStringValue in interface NodeInfo
Returns:
the attribute value

getURI

public final String getURI()
Get the URI part of the name of this node.
Specified by:
getURI in interface NodeInfo
Overrides:
getURI in interface TinyNodeImpl
Returns:
The URI of the namespace of this node. For the default namespace, return an empty string

isId

public boolean isId()
Returns whether this attribute is known to be of type ID (i.e. to contain an identifier for its owner element) or not. When it is and its value is unique, the ownerElement of this attribute can be retrieved using the method Document.getElementById . The implementation could use several ways to determine if an attribute node is known to contain an identifier:
  • If validation occurred using an XML Schema [XML Schema Part 1] while loading the document or while invoking Document.normalizeDocument(), the post-schema-validation infoset contributions (PSVI contributions) values are used to determine if this attribute is a schema-determined ID attribute using the schema-determined ID definition in [XPointer] .
  • If validation occurred using a DTD while loading the document or while invoking Document.normalizeDocument(), the infoset [type definition] value is used to determine if this attribute is a DTD-determined ID attribute using the DTD-determined ID definition in [XPointer] .
  • from the use of the methods Element.setIdAttribute(), Element.setIdAttributeNS(), or Element.setIdAttributeNode(), i.e. it is an user-determined ID attribute;

    Note: XPointer framework (see section 3.2 in [XPointer] ) consider the DOM user-determined ID attribute as being part of the XPointer externally-determined ID definition.

  • using mechanisms that are outside the scope of this specification, it is then an externally-determined ID attribute. This includes using schema languages different from XML schema and DTD.

If validation occurred while invoking Document.normalizeDocument(), all user-determined ID attributes are reset and all attribute nodes ID information are then reevaluated in accordance to the schema used. As a consequence, if the Attr.schemaTypeInfo attribute contains an ID type, isId will always return true.
Overrides:
isId in interface AbstractNode
Since:
DOM Level 3