Package com.icl.saxon.tinytree
Class TinyAttributeImpl
- java.lang.Object
-
- com.icl.saxon.om.AbstractNode
-
- com.icl.saxon.tinytree.TinyNodeImpl
-
- com.icl.saxon.tinytree.TinyAttributeImpl
-
- All Implemented Interfaces:
NodeInfo
,javax.xml.transform.dom.DOMLocator
,javax.xml.transform.Source
,javax.xml.transform.SourceLocator
,org.w3c.dom.Attr
,org.w3c.dom.Node
final class TinyAttributeImpl extends TinyNodeImpl implements org.w3c.dom.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 org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
-
-
Constructor Summary
Constructors Constructor Description TinyAttributeImpl(TinyDocumentImpl doc, int nodeNr)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
copy(Outputter out)
Copy this node to a given outputterjava.lang.String
generateId()
Generate id.java.lang.String
getDisplayName()
Get the display name of this node.int
getFingerprint()
Get the fingerprint of the node, used for matching namesint
getLineNumber()
Get the line number of the node within its source document entityjava.lang.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 poolshort
getNodeType()
Return the type of node.NodeInfo
getParent()
Get the parent nodejava.lang.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).java.lang.String
getStringValue()
Return the character value of the node.java.lang.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, getAttributeValue, getAttributeValue, getBaseURI, getDocumentRoot, getEnumeration, getOriginatingNode, getSystemId, hasAttributes, hasChildNodes, isSameNodeInfo, outputNamespaceNodes, setLineNumber, setParentNode, setSystemId
-
Methods inherited from class com.icl.saxon.om.AbstractNode
appendChild, appendData, cloneNode, compareDocumentPosition, copyStringValue, createAttribute, createAttributeNS, createCDATASection, createComment, createDocumentFragment, createElement, createElementNS, createEntityReference, createProcessingInstruction, createTextNode, deleteData, disallowUpdate, getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getChildNodes, getColumnNumber, getData, getDoctype, getDocumentElement, getElementById, getElementsByTagName, getElementsByTagNameNS, getFeature, getFirstChild, getImplementation, getLastChild, getLength, getName, getNamespaceURI, getNextSibling, getNodeName, getNodeValue, getOwnerDocument, getOwnerElement, getParentNode, getPreviousSibling, getPublicId, getSpecified, getTagName, getTextContent, getUserData, getValue, getWholeText, hasAttribute, hasAttributeNS, importNode, insertBefore, insertData, isDefaultNamespace, isElementContentWhitespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeAttribute, removeAttributeNode, removeAttributeNS, removeChild, replaceChild, replaceData, replaceWholeText, setAttributeNode, setAttributeNodeNS, setAttributeNS, setData, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setNodeValue, setPrefix, setTextContent, setUserData, setValue, splitText, substringData, supports
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.w3c.dom.Attr
getName, getOwnerElement, getSpecified, getValue, setValue
-
Methods inherited from interface org.w3c.dom.Node
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getNamespaceURI, getNextSibling, getNodeName, getNodeValue, getOwnerDocument, getParentNode, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
-
-
-
-
Constructor Detail
-
TinyAttributeImpl
public TinyAttributeImpl(TinyDocumentImpl doc, int nodeNr)
-
-
Method Detail
-
getParent
public NodeInfo getParent()
Get the parent node- Specified by:
getParent
in interfaceNodeInfo
- Overrides:
getParent
in classTinyNodeImpl
- Returns:
- The Node object describing the containing element or root node.
-
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 classTinyNodeImpl
-
getNodeType
public final short getNodeType()
Return the type of node.- Specified by:
getNodeType
in interfaceorg.w3c.dom.Node
- Specified by:
getNodeType
in interfaceNodeInfo
- Returns:
- Node.ATTRIBUTE
-
getStringValue
public java.lang.String getStringValue()
Return the character value of the node.- Specified by:
getStringValue
in interfaceNodeInfo
- Returns:
- the attribute value
-
getFingerprint
public int getFingerprint()
Get the fingerprint of the node, used for matching names- Specified by:
getFingerprint
in interfaceNodeInfo
- Overrides:
getFingerprint
in classTinyNodeImpl
-
getNameCode
public int getNameCode()
Get the name code of the node, used for finding names in the name pool- Specified by:
getNameCode
in interfaceNodeInfo
- Overrides:
getNameCode
in classTinyNodeImpl
- See Also:
allocate
,getFingerprint
-
getPrefix
public java.lang.String getPrefix()
Get the prefix part of the name of this node. This is the name before the ":" if any.- Specified by:
getPrefix
in interfaceorg.w3c.dom.Node
- Specified by:
getPrefix
in interfaceNodeInfo
- Overrides:
getPrefix
in classTinyNodeImpl
- Returns:
- the prefix part of the name. For an unnamed node, return null.
-
getDisplayName
public java.lang.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 interfaceNodeInfo
- Overrides:
getDisplayName
in classTinyNodeImpl
- Returns:
- The display name of this node. For a node with no name, return an empty string.
-
getLocalName
public java.lang.String getLocalName()
Get the local name of this node.- Specified by:
getLocalName
in interfaceorg.w3c.dom.Node
- Specified by:
getLocalName
in interfaceNodeInfo
- Overrides:
getLocalName
in classTinyNodeImpl
- Returns:
- The local name of this node. For a node with no name, return an empty string.
-
getURI
public final java.lang.String getURI()
Get the URI part of the name of this node.- Specified by:
getURI
in interfaceNodeInfo
- Overrides:
getURI
in classTinyNodeImpl
- Returns:
- The URI of the namespace of this node. For the default namespace, return an empty string
-
generateId
public java.lang.String generateId()
Generate id. Returns key of owning element with the attribute name as a suffix- Specified by:
generateId
in interfaceNodeInfo
- Overrides:
generateId
in classTinyNodeImpl
- Returns:
- a string.
-
copy
public void copy(Outputter out) throws javax.xml.transform.TransformerException
Copy this node to a given outputter
-
getLineNumber
public int getLineNumber()
Get the line number of the node within its source document entity- Specified by:
getLineNumber
in interfaceNodeInfo
- Specified by:
getLineNumber
in interfacejavax.xml.transform.SourceLocator
- Overrides:
getLineNumber
in classTinyNodeImpl
- Returns:
- the line number of the node in its original source document; or -1 if not available
-
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 invokingDocument.normalizeDocument()
,schemaTypeInfo
may not be reliable if the node was moved.- Specified by:
getSchemaTypeInfo
in interfaceorg.w3c.dom.Attr
- Overrides:
getSchemaTypeInfo
in classAbstractNode
- Since:
- DOM Level 3
-
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, theownerElement
of this attribute can be retrieved using the methodDocument.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()
, orElement.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 invokingDocument.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 theAttr.schemaTypeInfo
attribute contains an ID type,isId
will always return true.- Specified by:
isId
in interfaceorg.w3c.dom.Attr
- Overrides:
isId
in classAbstractNode
- Since:
- DOM Level 3
- If validation
occurred using an XML Schema [XML Schema Part 1]
while loading the document or while invoking
-
-