net.sf.saxon.evpull

Class StartElementEvent

Implemented Interfaces:
PullEvent

public class StartElementEvent
extends java.lang.Object
implements PullEvent

This is a PullEvent representing the start of an element node. It contains (or potentially contains) all the namespace nodes and attribute nodes associated with the element.

Constructor Summary

StartElementEvent(Configuration config)
Create a Start Element Event

Method Summary

void
addAttribute(NodeInfo att)
Add an attribute to the element node
void
addNamespace(int nscode)
Add a namespace code representing a locally declared namespace
int[]
getLocalNamespaces()
Get the namespaces locally declared on this element
int
getNameCode()
Get the nameCode of this element
int
getTypeCode()
Get the typeCode of this element
boolean
hasAttributes()
Ask whether the element has any attributes
Iterator
iterateAttributes()
Get an iterator over the attributes of this element
void
namespaceFixup()
Perform namespace fixup.
void
setLocalNamespaces(int[] nscodes)
Set the namespaces that are locally declared (or undeclared) on this element
void
setNameCode(int nameCode)
Set the nameCode of this element
void
setTypeCode(int typeCode)
Set the typeCode of this element

Constructor Details

StartElementEvent

public StartElementEvent(Configuration config)
Create a Start Element Event
Parameters:
config - the configuration

Method Details

addAttribute

public void addAttribute(NodeInfo att)
            throws XPathException
Add an attribute to the element node
Parameters:
att - the attribute to be added
Throws:
XPathException - in the event of a dynamic error, for example a duplicate attribute in XQuery

addNamespace

public void addNamespace(int nscode)
            throws XPathException
Add a namespace code representing a locally declared namespace
Parameters:
nscode - a namespace code
Throws:
XPathException -

getLocalNamespaces

public int[] getLocalNamespaces()
Get the namespaces locally declared on this element
Returns:
an array of namespace codes

getNameCode

public int getNameCode()
Get the nameCode of this element
Returns:
the nameCode representing the element's name

getTypeCode

public int getTypeCode()
Get the typeCode of this element
Returns:
the name pool fingerprint of the element's type annotation

hasAttributes

public boolean hasAttributes()
Ask whether the element has any attributes
Returns:
true if the element has one or more attributes

iterateAttributes

public Iterator iterateAttributes()
Get an iterator over the attributes of this element
Returns:
an iterator which delivers NodeInfo objects representing the attributes of this element

namespaceFixup

public void namespaceFixup()
Perform namespace fixup. This is done after all the attributes and explicit namespaces have been added. Namespace fixup ensures that a namespace declaration is present for the element name and for every attribute name, and that the prefixes of the element and each attribute are consistent with the declared namespaces, changing any prefixes in the event of a conflict.

setLocalNamespaces

public void setLocalNamespaces(int[] nscodes)
Set the namespaces that are locally declared (or undeclared) on this element
Parameters:
nscodes - integer array of namespace codes

setNameCode

public void setNameCode(int nameCode)
Set the nameCode of this element
Parameters:
nameCode - the namecode of the element (its name as identified in the NamePool)

setTypeCode

public void setTypeCode(int typeCode)
Set the typeCode of this element
Parameters:
typeCode - the name pool fingerprint of the element's type annotation