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 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
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StartElementEvent

public StartElementEvent(Configuration config)
Create a Start Element Event

Parameters:
config - the 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

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.



Copyright (C) Michael H. Kay. All rights reserved.