net.sf.saxon.evpull
Class StartElementEvent

java.lang.Object
  extended by net.sf.saxon.evpull.StartElementEvent
All Implemented Interfaces:
PullEvent

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.


Constructor Summary
StartElementEvent(PipelineConfiguration pipe)
          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
 NodeInfo getAttribute(int index)
          Get the n'th attribute if there is one
 int getAttributeCount()
          Ask how may attributes the element has
 int[] getLocalNamespaces()
          Get the namespaces locally declared on this element
 int getLocationId()
          Get the location associated with the event
 int getNameCode()
          Get the nameCode of this element
 PipelineConfiguration getPipelineConfiguration()
          Get the PipelineConfiguration
 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 setLocationId(int locationId)
          Set the location associated with the event
 void setNameCode(int nameCode)
          Set the nameCode of this element
 void setTypeCode(int typeCode)
          Set the typeCode of this element
 void stripTypeAnnotations()
          Strip type annotations from the element and its attributes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StartElementEvent

public StartElementEvent(PipelineConfiguration pipe)
Create a Start Element Event

Parameters:
pipe - the pipeline configuration
Method Detail

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)

getNameCode

public int getNameCode()
Get the nameCode of this element

Returns:
the nameCode representing the element's name

setTypeCode

public void setTypeCode(int typeCode)
Set the typeCode of this element

Parameters:
typeCode - the name pool fingerprint of the element's type annotation

getTypeCode

public int getTypeCode()
Get the typeCode of this element

Returns:
the name pool fingerprint of the element's type annotation

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

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

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

hasAttributes

public boolean hasAttributes()
Ask whether the element has any attributes

Returns:
true if the element has one or more attributes

getAttributeCount

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

Returns:
the number of attributes that the element has

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

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

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.


stripTypeAnnotations

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


getPipelineConfiguration

public PipelineConfiguration getPipelineConfiguration()
Get the PipelineConfiguration

Returns:
the PipelineConfiguration

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

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


Copyright (c) Saxonica Limited. All rights reserved.