net.sf.saxon.evpull

Class StartElementEvent

public class StartElementEvent extends Object implements PullEvent

This is a PullEvent representing the start of an element node. It contains (or potentially contains) all the namespace declarations and attributes associated with the element.
Field Summary
PipelineConfigurationpipe
Constructor Summary
StartElementEvent(PipelineConfiguration pipe)
Create a Start Element Event
Method Summary
voidaddAttribute(NodeInfo att)
Add an attribute to the element node
voidaddNamespace(int nscode)
Add a namespace code representing a locally declared namespace
NodeInfogetAttribute(int index)
Get the n'th attribute if there is one
intgetAttributeCount()
Ask how may attributes the element has
int[]getLocalNamespaces()
Get the namespaces locally declared on this element
intgetLocationId()
Get the location associated with the event
intgetNameCode()
Get the nameCode of this element
PipelineConfigurationgetPipelineConfiguration()
Get the PipelineConfiguration
intgetTypeCode()
Get the typeCode of this element
booleanhasAttributes()
Ask whether the element has any attributes
IteratoriterateAttributes()
Get an iterator over the attributes of this element
voidnamespaceFixup()
Perform namespace fixup.
voidsetLocalNamespaces(int[] nscodes)
Set the namespaces that are locally declared (or undeclared) on this element
voidsetLocationId(int locationId)
Set the location associated with the event
voidsetNameCode(int nameCode)
Set the nameCode of this element
voidsetTypeCode(int typeCode)
Set the typeCode of this element
voidstripTypeAnnotations()
Strip type annotations from the element and its attributes

Field Detail

pipe

PipelineConfiguration pipe

Constructor Detail

StartElementEvent

public StartElementEvent(PipelineConfiguration pipe)
Create a Start Element Event

Parameters: pipe the pipeline configuration

Method Detail

addAttribute

public void addAttribute(NodeInfo att)
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)
Add a namespace code representing a locally declared namespace

Parameters: nscode a namespace code

Throws: XPathException

getAttribute

public NodeInfo getAttribute(int index)
Get the n'th attribute if there is one

Parameters: index the index of the attributes, starting from zero

Returns: a NodeInfo representing the attribute, or null if there is no such attribute

getAttributeCount

public int getAttributeCount()
Ask how may attributes the element has

Returns: the number of attributes that the element has

getLocalNamespaces

public int[] getLocalNamespaces()
Get the namespaces locally declared on this element

Returns: an array of namespace codes

getLocationId

public int getLocationId()
Get the location associated with the event

Returns: a location identifier, to be interpreted by the locationProvider associated with the PipelineConfiguration, or -1 if none is available

getNameCode

public int getNameCode()
Get the nameCode of this element

Returns: the nameCode representing the element's name

getPipelineConfiguration

public PipelineConfiguration getPipelineConfiguration()
Get the PipelineConfiguration

Returns: the PipelineConfiguration

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

setLocationId

public void setLocationId(int locationId)
Set the location associated with the event

Parameters: locationId a location identifier, to be interpreted by the locationProvider associated with the PipelineConfiguration

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

stripTypeAnnotations

public void stripTypeAnnotations()
Strip type annotations from the element and its attributes