<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc on Thu Sep 25 16:46:57 PDT 2003 -->
<TITLE>
XmlCursor (XMLBeans Documentation)
</TITLE>
<META NAME="keywords" CONTENT="org.apache.xmlbeans.XmlCursor,XmlCursor interface">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
</HEAD>
<SCRIPT>
function asd()
{
parent.document.title="XmlCursor (XMLBeans Documentation)";
}
</SCRIPT>
<BODY BGCOLOR="white" onload="asd();">

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_top"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlByte.html"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.ChangeStamp.html"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="XmlCursor.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;
<SCRIPT>
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.xmlbeans</FONT>
<BR>
Interface XmlCursor</H2>
<DL>
<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html">XmlTokenSource</A></DD>
</DL>
<HR>
<DL>
<DT>public interface <B>XmlCursor</B><DT>extends <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html">XmlTokenSource</A></DL>

<P>
Represents a position between two logical tokens in an XML document. 
 
 The tokens themselves are not exposed as objects, but their type and properties
 are discoverable through methods on the cursor.  In particular, the general
 category of token is represented by a <A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html"><CODE>TokenType</CODE></A>.<br/><br/>
 
 You use an XmlCursor instance to navigate through and manipulate an XML 
 instance document. 
 Once you obtain an XML document, you can create a cursor to represent 
 a specific place in the XML. Because you can use a cursor with or 
 without a schema corresponding to the XML, cursors are an ideal 
 way to handle XML without a schema. You can create a new cursor by
 calling the <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newCursor()"><CODE>newCursor</CODE></A> method 
 exposed by an object representing
 the XML, whether it was parsed into a strong type compiled from 
 schema or an <A HREF="../../../org/apache/xmlbeans/XmlObject.html"><CODE>XmlObject</CODE></A> (as in the no-schema case).<br/><br/>
 
 With an XmlCursor, you can also: <br/><br/>
 
 <ul>
 <li>Execute XQuery and XPath expressions against the XML with the
 execQuery and selectPath methods.</li>
 
 <li>Edit and reshape the document by inserting, moving, copying, and removing
 XML.</li>
 
 <li>Insert bookmarks that "stick" to the XML at the cursor's
 position even if the cursor or XML moves.</li>

 <li>Get and set values for containers (elements and whole documents),
 attributes, processing instructions, and comments.</li>
 </ul>
 
 A cursor moves through XML by moving past tokens. A
 token represents a category of XML markup, such as the start of an element, 
 its end, an attribute, comment, and so on. XmlCursor methods such as
 toNextToken, toNextSibling, toParent, and so on move the cursor 
 among tokens. Each token's category is of a particular <em>type</em>, represented 
 by one of the nine types defined by the <A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html"><CODE>TokenType</CODE></A> class. <br/><br/>
 
 When you get a new cursor for a whole instance document, the cursor is
 intially located before the STARTDOC token. This token, which has no analogy
 in the XML specification, is present in this logical model of XML
 so that you may distinguish between the document as a whole
 and the content of the document. Terminating the document is an ENDDOC
 token. This token is also not part of the XML specification. A cursor 
 located immediately before this token is at the very end of the document. 
 It is not possible to position the cursor after the ENDDOC token. 
 Thus, the STARTDOC and ENDDOC tokens are effectively "bookends" for the content of 
 the document.<br/><br/>
 
 For example, for the following XML, if you were the navigate a cursor
 through the XML document using toNextToken(), the list of token types that 
 follows represents the token sequence you would encounter. <br/><br/>
 
 <pre>
 &lt;sample x='y'&gt;
     &lt;value&gt;foo&lt;/value&gt;
 &lt;/sample&gt;
 </pre>
 
 STARTDOC <br/>
 START (sample) <br/>
 ATTR (x='y') <br/>
 TEXT ("\n    ") <br/>
 START (value) <br/>
 TEXT ("foo") <br/>
 END (value) <br/>
 TEXT ("\n") <br/>
 END (sample)<br/>
 ENDDOC <br/><br/>

 When there are no more tokens available, hasNextToken() returns
 false and toNextToken() returns the special token type NONE and does not move
 the cursor.
 <br/><br/>
 
 The <A HREF="../../../org/apache/xmlbeans/XmlCursor.html#currentTokenType()"><CODE>currentTokenType()</CODE></A> method 
 will return the type of the token that is immediately after the cursor. 
 You can also use a number of convenience methods that test for a particular 
 token type. These include the methods isStart(), 
 isStartdoc(), isText(), isAttr(), and so on. Each returns a boolean 
 value indicating whether the token that follows the cursor is the type 
 in question. 
 <br/><br/>
 
 A few other methods determine whether the token is of a kind that may include 
 multiple token types. The isAnyAttr() method, for example, returns true if
 the token immediately following the cursor is any kind of attribute, 
 including those of the ATTR token type and xmlns attributes.
 <br/><br/>
 
 Legitimate sequences of tokens for an XML document are described
 by the following Backus-Naur Form (BNF): <br/>
 
 <pre>
 &lt;doc&gt; ::= STARTDOC &lt;attributes&gt; &lt;content&gt; ENDDOC
 &lt;element&gt; ::= START &lt;attributes&gt; &lt;content&gt; END
 &lt;attributes&gt; ::= ( ATTR | NAMESPACE ) *
 &lt;content&gt; ::= ( COMMENT | PROCINST | TEXT | &lt;element&gt; ) *
 </pre>
 
 Note that a legitimate sequence is STARTDOC ENDDOC, the result of 
 creating a brand new instance of an empty document. Also note that 
 attributes may only follow container tokens (STARTDOC or START)
<P>

<P>
<HR>

<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->

<A NAME="nested_class_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Nested Class Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;interface</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.ChangeStamp.html">XmlCursor.ChangeStamp</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Represents the state of a dcoument at a particular point
 in time.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An enumeration that identifies the type of an XML token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlBookmark.html">XmlCursor.XmlBookmark</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subclasses of XmlBookmark can be used to annotate an XML document.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;interface</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlMark.html">XmlCursor.XmlMark</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An abstract <A HREF="../../../org/apache/xmlbeans/XmlCursor.html"><CODE>XmlCursor</CODE></A> factory.</TD>
</TR>
</TABLE>
&nbsp;
<!-- =========== FIELD SUMMARY =========== -->


<!-- ======== CONSTRUCTOR SUMMARY ======== -->


<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#addToSelection()">addToSelection</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Appends the current location of the cursor to the selection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#beginElement(javax.xml.namespace.QName)">beginElement</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new element around this cursor, giving the element the specified 
 qualified name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#beginElement(java.lang.String)">beginElement</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new element around this cursor, giving the element the specified 
 local name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#beginElement(java.lang.String, java.lang.String)">beginElement</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName,
             <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;uri)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new element around this cursor, giving the element the specified 
 local name and associating it with the specified namespace.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#clearBookmark(java.lang.Object)">clearBookmark</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html">Object</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears the bookmark whose key is specified, if the bookmark
 exists at this cursor's location.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#clearSelections()">clearSelections</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clears this cursor's selection, but does not modify the document.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#comparePosition(org.apache.xmlbeans.XmlCursor)">comparePosition</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;cursor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an integer indicating whether this cursor is before, 
 after, or at the same position as the specified cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#copyChars(int, org.apache.xmlbeans.XmlCursor)">copyChars</A></B>(int&nbsp;maxCharacterCount,
          <A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;toHere)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copies characters to the position immediately after the specified cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#copyXml(org.apache.xmlbeans.XmlCursor)">copyXml</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;toHere)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copies the XML immediately after this cursor to the location
 specified by the <em>toHere</em> cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#copyXmlContents(org.apache.xmlbeans.XmlCursor)">copyXmlContents</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;toHere)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copies the contents of the container (STARTDOC OR START) immediately to
 the right of the cursor to the location specified by the <em>toHere</em> cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#currentTokenType()">currentTokenType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the type of the current token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#dispose()">dispose</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deallocates resources needed to manage the cursor, rendering this cursor
 inoperable.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#execQuery(java.lang.String)">execQuery</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;query)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the specified XQuery expression against the XML this
 cursor is in.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#execQuery(java.lang.String, org.apache.xmlbeans.XmlOptions)">execQuery</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;query,
          <A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the specified XQuery expression against the XML this
 cursor is in, and using the specified options.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#getAllBookmarkRefs(java.util.Collection)">getAllBookmarkRefs</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collection.html">Collection</A>&nbsp;listToFill)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retrieves all the bookmarks at this location, adding them to
 the specified collection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#getAllNamespaces(java.util.Map)">getAllNamespaces</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Map.html">Map</A>&nbsp;addToThis)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds to the specified map, all the namespaces in scope at the container
 where this cursor is positioned.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#getAttributeText(javax.xml.namespace.QName)">getAttributeText</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;attrName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When at a START or STARTDOC, returns the attribute text for the given
 attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlBookmark.html">XmlCursor.XmlBookmark</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#getBookmark(java.lang.Object)">getBookmark</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html">Object</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retrieves the bookmark with the specified key 
 at this cursor's location.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#getChars()">getChars</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns characters to the right of the cursor up to the next token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#getChars(char[], int, int)">getChars</A></B>(char[]&nbsp;returnedChars,
         int&nbsp;offset,
         int&nbsp;maxCharacterCount)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copies characters up to the specified maximum number, counting right from 
 this cursor's location to the character at <em>maxCharacterCount</em>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.ChangeStamp.html">XmlCursor.ChangeStamp</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#getDocChangeStamp()">getDocChangeStamp</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current change stamp for the document the current cursor is in.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#getName()">getName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the name of the current token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlObject.html">XmlObject</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#getObject()">getObject</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the strongly-typed XmlObject at the current START,
 STARTDOC, or ATTR.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#getSelectionCount()">getSelectionCount</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the count of the current selection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#getTextValue()">getTextValue</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the text value of the current document, element, attribute,
 comment, procinst or text token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#getTextValue(char[], int, int)">getTextValue</A></B>(char[]&nbsp;returnedChars,
             int&nbsp;offset,
             int&nbsp;maxCharacterCount)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copies the text value of the current document, element, attribute,
 comment, processing instruction or text token, counting right from 
 this cursor's location up to <em>maxCharacterCount</em>,
 and copies the returned text into <em>returnedChars</em>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#hasNextSelection()">hasNextSelection</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether or not there is a next selection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#hasNextToken()">hasNextToken</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if there is a next token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#hasPrevToken()">hasPrevToken</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if there is a previous token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertAttribute(javax.xml.namespace.QName)">insertAttribute</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new attribute immediately before this cursor's location, giving it
 the specified name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertAttribute(java.lang.String)">insertAttribute</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new attribute immediately before this cursor's location, giving it
 the specified local name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertAttribute(java.lang.String, java.lang.String)">insertAttribute</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName,
                <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;uri)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new attribute immediately before this cursor's location, giving it
 the specified local name and associating it with the specified namespace.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertAttributeWithValue(javax.xml.namespace.QName, java.lang.String)">insertAttributeWithValue</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name,
                         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts an attribute immediately before the cursor's location, giving it
 the specified name and value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertAttributeWithValue(java.lang.String, java.lang.String)">insertAttributeWithValue</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;Name,
                         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new attribute immediately before this cursor's location, giving it
 the specified value and name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertAttributeWithValue(java.lang.String, java.lang.String, java.lang.String)">insertAttributeWithValue</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;name,
                         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;uri,
                         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts an attribute immediately before the cursor's location, giving it
 the specified name and value, and associating it with the specified namespace.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertChars(java.lang.String)">insertChars</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts the specified text immediately before this cursor's location.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertComment(java.lang.String)">insertComment</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts an XML comment immediately before the cursor's location, 
 giving it the specified content.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertElement(javax.xml.namespace.QName)">insertElement</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts an element immediately before this cursor's location, giving 
 the element the specified qualified name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertElement(java.lang.String)">insertElement</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts an element immediately before this cursor's location, giving 
 the element the specified local name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertElement(java.lang.String, java.lang.String)">insertElement</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName,
              <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;uri)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new element immediately before this cursor's location, giving the
 element the specified local name and associating it with specified namespace</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertElementWithText(javax.xml.namespace.QName, java.lang.String)">insertElementWithText</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name,
                      <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new element immediately before this cursor's location, giving the
 element the specified qualified name and content.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertElementWithText(java.lang.String, java.lang.String)">insertElementWithText</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName,
                      <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new element immediately before this cursor's location, giving the
 element the specified local name and content.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertElementWithText(java.lang.String, java.lang.String, java.lang.String)">insertElementWithText</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName,
                      <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;uri,
                      <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a new element immediately before this cursor's location, giving the
 element the specified local name, associating it with the specified namespace, 
 and giving it the specified content.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertNamespace(java.lang.String, java.lang.String)">insertNamespace</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;prefix,
                <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;namespace)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts a namespace declaration immediately before the cursor's location, 
 giving it the specified prefix and URI.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#insertProcInst(java.lang.String, java.lang.String)">insertProcInst</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;target,
               <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts an XML processing instruction immediately before the cursor's location, 
 giving it the specified target and text.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isAnyAttr()">isAnyAttr</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if this token is any attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isAtSamePositionAs(org.apache.xmlbeans.XmlCursor)">isAtSamePositionAs</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;cursor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determines if this cursor is at the same position as
 the specified cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isAttr()">isAttr</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if this token is an ATTR token type, meaning 
 just before an attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isComment()">isComment</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if this token is a COMMENT token type, meaning 
 just before a comment.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isContainer()">isContainer</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if this token is a container token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isEnd()">isEnd</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if this token is an END token type, meaning 
 just before an element's end.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isEnddoc()">isEnddoc</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if this token is an ENDDOC token type, meaning 
 at the very end of the document.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isFinish()">isFinish</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if this token is a finish token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isInSameDocument(org.apache.xmlbeans.XmlCursor)">isInSameDocument</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;cursor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determines if the specified cursor is in the same document as
 this cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isLeftOf(org.apache.xmlbeans.XmlCursor)">isLeftOf</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;cursor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determines if this cursor is to the left of (or before)
 the specified cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isNamespace()">isNamespace</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if this token is a NAMESPACE token type, meaning 
 just before a namespace declaration.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isProcinst()">isProcinst</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if this token is a PROCINST token type, meaning 
 just before a processing instruction.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isRightOf(org.apache.xmlbeans.XmlCursor)">isRightOf</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;cursor)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determines if this cursor is to the right of (or after)
 the specified cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isStart()">isStart</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if this token is a START token type, meaning 
 just before an element's start.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isStartdoc()">isStartdoc</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if the current token is a STARTDOC token type, meaning 
 at the very root of the document.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#isText()">isText</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if the this token is a TEXT token type, meaning 
 just before or inside text.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#moveChars(int, org.apache.xmlbeans.XmlCursor)">moveChars</A></B>(int&nbsp;maxCharacterCount,
          <A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;toHere)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves characters immediately after this cursor to the position immediately 
 after the specified cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#moveXml(org.apache.xmlbeans.XmlCursor)">moveXml</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;toHere)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the XML immediately after this cursor to the location
 specified by the <em>toHere</em> cursor, shifting XML at that location 
 to the right to make room.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#moveXmlContents(org.apache.xmlbeans.XmlCursor)">moveXmlContents</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;toHere)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the contents of the container (STARTDOC OR START) immediately after
 this cursor to the location specified by the <em>toHere</em> cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#namespaceForPrefix(java.lang.String)">namespaceForPrefix</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;prefix)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the namespace URI indicated by the given prefix.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#pop()">pop</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restores the cursor location most recently saved with the push() method.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#prefixForNamespace(java.lang.String)">prefixForNamespace</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;namespaceURI)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a prefix that can be used to indicate a namespace URI.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#prevTokenType()">prevTokenType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the type of the previous token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#push()">push</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Saves the current location of this cursor on an internal stack of saved
 positions (independent of selection).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#removeAttribute(javax.xml.namespace.QName)">removeAttribute</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;attrName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When at a START or STARTDOC, removes the attribute with the given name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#removeChars(int)">removeChars</A></B>(int&nbsp;maxCharacterCount)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes characters up to the specified maximum number, counting right from 
 this cursor's location to the character at <em>maxCharacterCount</em>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#removeXml()">removeXml</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the XML that is immediately after this cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#removeXmlContents()">removeXmlContents</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the contents of the container (STARTDOC OR START) immediately after
 this cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#selectPath(java.lang.String)">selectPath</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;path)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the specified XPath expression against the XML that this 
 cursor is in.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#selectPath(java.lang.String, org.apache.xmlbeans.XmlOptions)">selectPath</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;path,
           <A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Executes the specified XPath expression against the XML that this 
 cursor is in.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#setAttributeText(javax.xml.namespace.QName, java.lang.String)">setAttributeText</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;attrName,
                 <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When at a START or STARTDOC, sets the attribute text for the given
 attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#setBookmark(org.apache.xmlbeans.XmlCursor.XmlBookmark)">setBookmark</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlBookmark.html">XmlCursor.XmlBookmark</A>&nbsp;bookmark)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets a bookmark to the document at this cursor's location.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#setName(javax.xml.namespace.QName)">setName</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the name of the current token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#setTextValue(char[], int, int)">setTextValue</A></B>(char[]&nbsp;sourceChars,
             int&nbsp;offset,
             int&nbsp;length)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the text value of the XML at this cursor's location (if that XML's
 token type is START, STARTDOC, ATTR, COMMENT or PROCINST) to the 
 contents of the specified character array.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#setTextValue(java.lang.String)">setTextValue</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the text value of the XML at this cursor's location if that XML's
 token type is START, STARTDOC, ATTR, COMMENT or PROCINST.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toBookmark(org.apache.xmlbeans.XmlCursor.XmlBookmark)">toBookmark</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlBookmark.html">XmlCursor.XmlBookmark</A>&nbsp;bookmark)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves this cursor to the same position as the bookmark.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toChild(int)">toChild</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the child element specified by <em>index</em>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toChild(javax.xml.namespace.QName)">toChild</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the first child element of the specified qualified name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toChild(javax.xml.namespace.QName, int)">toChild</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name,
        int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the specified <em>index</em> child element of the 
 specified name, where that element is the .</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toChild(java.lang.String)">toChild</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the first child element of the specified name in 
 no namespace.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toChild(java.lang.String, java.lang.String)">toChild</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;namespace,
        <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the first child element of the specified name in the 
 specified namespace.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toCursor(org.apache.xmlbeans.XmlCursor)">toCursor</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;moveTo)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves this cursor to the same position as the moveTo cursor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toEndDoc()">toEndDoc</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the ENDDOC token, which is the end
 of the document.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toEndToken()">toEndToken</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the END or ENDDOC token corresponding to the
 current START or STARTDOC, and returns END or ENDDOC.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toFirstAttribute()">toFirstAttribute</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the first attribute of this element, or
 returns false and does not move the cursor if there are no
 attributes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toFirstChild()">toFirstChild</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the first child element, or returns false and
 does not move the cursor if there are no element children.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toFirstContentToken()">toFirstContentToken</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the first token in the content of the current
 START or STARTDOC.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toLastAttribute()">toLastAttribute</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the last attribute of this element, or
 returns false and does not move the cursor if there are no
 attributes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toLastChild()">toLastChild</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the last element child, or returns false and
 does not move the cursor if there are no element children.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toNextAttribute()">toNextAttribute</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the next sibling attribute, or returns
 false and does not move the cursor if there is no next
 sibling attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlBookmark.html">XmlCursor.XmlBookmark</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toNextBookmark(java.lang.Object)">toNextBookmark</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html">Object</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves this cursor to the location after its current position
 where a bookmark with the given key exists.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toNextChar(int)">toNextChar</A></B>(int&nbsp;maxCharacterCount)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor forward by the specified number of characters, and
 stops at the next non-TEXT token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toNextSelection()">toNextSelection</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves this cursor to the next location in the selection, 
 if any.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toNextSibling()">toNextSibling</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the next sibling element, or returns
 false and does not move the cursor if there is no next sibling
 element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toNextSibling(javax.xml.namespace.QName)">toNextSibling</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the next sibling element of the specified 
 qualified name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toNextSibling(java.lang.String)">toNextSibling</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the next sibling element of the specified name in no
 namespace.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toNextSibling(java.lang.String, java.lang.String)">toNextSibling</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;namespace,
              <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the next sibling element of the specified name 
 in the specified namespace.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toNextToken()">toNextToken</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the next token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toParent()">toParent</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the parent element or STARTDOC, or returns
 false and does not move the cursor if there is no parent.<br/><br/>

 Works if you're in attributes or content.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toPrevAttribute()">toPrevAttribute</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the previous sibling attribute, or returns
 false and does not move the cursor if there is no previous
 sibling attribute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlBookmark.html">XmlCursor.XmlBookmark</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toPrevBookmark(java.lang.Object)">toPrevBookmark</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html">Object</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves this cursor to the location before its current position
 where a bookmark with the given key exists.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toPrevChar(int)">toPrevChar</A></B>(int&nbsp;maxCharacterCount)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor backwards by the number of characters given.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toPrevSibling()">toPrevSibling</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the previous sibling element, or returns
 false and does not move the cursor if there is no previous sibling
 element.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toPrevToken()">toPrevToken</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the previous token.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toSelection(int)">toSelection</A></B>(int&nbsp;i)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves this cursor to the specified location in the selection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toStartDoc()">toStartDoc</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Moves the cursor to the STARTDOC token, which is the 
 root of the document.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.xmlbeans.XmlTokenSource"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TD><B>Methods inherited from interface org.apache.xmlbeans.<A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html">XmlTokenSource</A></B></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#documentProperties()">documentProperties</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#monitor()">monitor</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newCursor()">newCursor</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newDomNode()">newDomNode</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newDomNode(org.apache.xmlbeans.XmlOptions)">newDomNode</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newInputStream()">newInputStream</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newInputStream(org.apache.xmlbeans.XmlOptions)">newInputStream</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newReader()">newReader</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newReader(org.apache.xmlbeans.XmlOptions)">newReader</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newXMLInputStream()">newXMLInputStream</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newXMLInputStream(org.apache.xmlbeans.XmlOptions)">newXMLInputStream</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#save(org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler)">save</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#save(org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler, org.apache.xmlbeans.XmlOptions)">save</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#save(java.io.File)">save</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#save(java.io.File, org.apache.xmlbeans.XmlOptions)">save</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#save(java.io.OutputStream)">save</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#save(java.io.OutputStream, org.apache.xmlbeans.XmlOptions)">save</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#save(java.io.Writer)">save</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#save(java.io.Writer, org.apache.xmlbeans.XmlOptions)">save</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#xmlText()">xmlText</A>, <A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#xmlText(org.apache.xmlbeans.XmlOptions)">xmlText</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->


<!-- ========= CONSTRUCTOR DETAIL ======== -->


<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="dispose()"><!-- --></A><H3>
dispose</H3>
<PRE>
public void <B>dispose</B>()</PRE>
<DL>
<DD>Deallocates resources needed to manage the cursor, rendering this cursor
 inoperable. Because cursors are managed by a mechanism which stores the 
 XML, simply letting a cursor go out of scope and having the garbage collector
 attempt to reclaim it may not produce desirable performance.<br/><br/>

 So, explicitly disposing a cursor allows the underlying implementation
 to release its responsibility of maintaining its position.<br/><br/>

 After a cursor has been disposed, it may not be used again.  It can
 throw IllegalStateException or NullPointerException if used after
 disposal.<br/><br/>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="toCursor(org.apache.xmlbeans.XmlCursor)"><!-- --></A><H3>
toCursor</H3>
<PRE>
public boolean <B>toCursor</B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;moveTo)</PRE>
<DL>
<DD>Moves this cursor to the same position as the moveTo cursor.  if the
 moveTo cursor is in a different document from this cursor, this cursor
 will not be moved, and false returned.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>moveTo</CODE> - The cursor at the location to which this cursor
 should be moved.
<DT><B>Returns:</B><DD>true if the cursor moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="push()"><!-- --></A><H3>
push</H3>
<PRE>
public void <B>push</B>()</PRE>
<DL>
<DD>Saves the current location of this cursor on an internal stack of saved
 positions (independent of selection). This location may be restored
 later by calling the pop() method.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="pop()"><!-- --></A><H3>
pop</H3>
<PRE>
public boolean <B>pop</B>()</PRE>
<DL>
<DD>Restores the cursor location most recently saved with the push() method.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if there was a location to restore; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="selectPath(java.lang.String)"><!-- --></A><H3>
selectPath</H3>
<PRE>
public void <B>selectPath</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;path)</PRE>
<DL>
<DD>Executes the specified XPath expression against the XML that this 
 cursor is in.  The cursors position does not change.  To navigate to the
 selections, use hasNextSelection and toNextSelection (similar to
 java.util.Iterator).<br/><br/>
 
 The root referred to by the expression should be given as 
 a dot. The following is an example path expression:
 <pre>
 cursor.selectPath("./purchase-order/line-item[price <= 20.00]");
 </pre>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>path</CODE> - The path expression to execute.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/xmlbeans/XmlRuntimeException.html">XmlRuntimeException</A></CODE> - If the query expression is invalid.</DL>
</DD>
</DL>
<HR>

<A NAME="selectPath(java.lang.String, org.apache.xmlbeans.XmlOptions)"><!-- --></A><H3>
selectPath</H3>
<PRE>
public void <B>selectPath</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;path,
                       <A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</PRE>
<DL>
<DD>Executes the specified XPath expression against the XML that this 
 cursor is in. The cursor's position does not change.  To navigate to the
 selections, use hasNextSelection and toNextSelection (similar to
 java.util.Iterator).<br/><br/>
 
 The root referred to by the expression should be given as 
 a dot. The following is an example path expression:
 <pre>
 cursor.selectPath("./purchase-order/line-item[price <= 20.00]");
 </pre>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>path</CODE> - The path expression to execute.<DD><CODE>options</CODE> - Options for the query. For example, you can call 
 the <A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setXqueryCurrentNodeVar(java.lang.String)"><CODE>XmlOptions.setXqueryCurrentNodeVar(String)</CODE></A>
 method to specify a particular name for the query expression 
 variable that indicates the context node.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/xmlbeans/XmlRuntimeException.html">XmlRuntimeException</A></CODE> - If the query expression is invalid.</DL>
</DD>
</DL>
<HR>

<A NAME="hasNextSelection()"><!-- --></A><H3>
hasNextSelection</H3>
<PRE>
public boolean <B>hasNextSelection</B>()</PRE>
<DL>
<DD>Returns whether or not there is a next selection.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if there is a next selection; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toNextSelection()"><!-- --></A><H3>
toNextSelection</H3>
<PRE>
public boolean <B>toNextSelection</B>()</PRE>
<DL>
<DD>Moves this cursor to the next location in the selection, 
 if any. See the selectPath() and addToSelection() methods.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the cursor moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toSelection(int)"><!-- --></A><H3>
toSelection</H3>
<PRE>
public boolean <B>toSelection</B>(int&nbsp;i)</PRE>
<DL>
<DD>Moves this cursor to the specified location in the selection. 
 If i is less than zero or greater than or equal to the selection
 count, this method returns false.
  
 See also the selectPath() and addToSelection() methods.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>i</CODE> - The index of the desired location.
<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="getSelectionCount()"><!-- --></A><H3>
getSelectionCount</H3>
<PRE>
public int <B>getSelectionCount</B>()</PRE>
<DL>
<DD>Returns the count of the current selection. See also the selectPath() 
 and addToSelection() methods.
 
 You may experience better performance if you use the iteration
 model using the toNextSelection method, rather than 
 the indexing model using the getSelectionCount and 
 toSelection methods.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>A number indicating the size of the current selection.</DL>
</DD>
</DL>
<HR>

<A NAME="addToSelection()"><!-- --></A><H3>
addToSelection</H3>
<PRE>
public void <B>addToSelection</B>()</PRE>
<DL>
<DD>Appends the current location of the cursor to the selection.  
 See also the selectPath() method. You can use this as an 
 alternative to calling the selectPath method when you want
 to define your own selection.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="clearSelections()"><!-- --></A><H3>
clearSelections</H3>
<PRE>
public void <B>clearSelections</B>()</PRE>
<DL>
<DD>Clears this cursor's selection, but does not modify the document.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="toBookmark(org.apache.xmlbeans.XmlCursor.XmlBookmark)"><!-- --></A><H3>
toBookmark</H3>
<PRE>
public boolean <B>toBookmark</B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlBookmark.html">XmlCursor.XmlBookmark</A>&nbsp;bookmark)</PRE>
<DL>
<DD>Moves this cursor to the same position as the bookmark.  If the
 bookmark is in a different document from this cursor or if the 
 bookmark is orphaned, this cursor
 will not be moved, and false will be returned.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>bookmark</CODE> - The bookmark at the location to which this
 cursor should be moved.
<DT><B>Returns:</B><DD>true if the cursor moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toNextBookmark(java.lang.Object)"><!-- --></A><H3>
toNextBookmark</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlBookmark.html">XmlCursor.XmlBookmark</A> <B>toNextBookmark</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html">Object</A>&nbsp;key)</PRE>
<DL>
<DD>Moves this cursor to the location after its current position
 where a bookmark with the given key exists.  Returns false if no
 such bookmark exists.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - The key held by the next bookmark at the location to 
 which this cursor should be moved.
<DT><B>Returns:</B><DD>The next corresponding bookmark, if it exists; null if there
 is no next bookmark with the specified key.</DL>
</DD>
</DL>
<HR>

<A NAME="toPrevBookmark(java.lang.Object)"><!-- --></A><H3>
toPrevBookmark</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlBookmark.html">XmlCursor.XmlBookmark</A> <B>toPrevBookmark</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html">Object</A>&nbsp;key)</PRE>
<DL>
<DD>Moves this cursor to the location before its current position
 where a bookmark with the given key exists.  Returns false if no
 such bookmark exists.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - The key held by the previous bookmark at the location to 
 which this cursor should be moved.
<DT><B>Returns:</B><DD>The previous corresponding bookmark, if it exists; null if 
 there is no previous bookmark with the specified key.</DL>
</DD>
</DL>
<HR>

<A NAME="getName()"><!-- --></A><H3>
getName</H3>
<PRE>
public <A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A> <B>getName</B>()</PRE>
<DL>
<DD>Returns the name of the current token. Names may be associated with
 START, ATTR, NAMESPACE or PROCINST. Returns null if there is no
 name associated with the current token. For START and ATTR, the 
 name returned identifies the name of the element or attribute. 
 For NAMESPACE, the local part of the name is the prefix, while 
 the URI is the namespace defined. For PROCINST, the local part 
 is the target and the uri is "".
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The name of the XML at this cursor's location; null if there
 is no name.</DL>
</DD>
</DL>
<HR>

<A NAME="setName(javax.xml.namespace.QName)"><!-- --></A><H3>
setName</H3>
<PRE>
public void <B>setName</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</PRE>
<DL>
<DD>Sets the name of the current token. This token can be START, NAMESPACE,
 ATTR or PROCINST.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The new name for the current token.</DL>
</DD>
</DL>
<HR>

<A NAME="namespaceForPrefix(java.lang.String)"><!-- --></A><H3>
namespaceForPrefix</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A> <B>namespaceForPrefix</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;prefix)</PRE>
<DL>
<DD>Returns the namespace URI indicated by the given prefix. The current
 context must be at a START or STARTDOC. Namespace prefix mappings
 are queried for the mappings defined at the current container first,
 then parents are queried. The prefix can be "" or null to indicate
 a search for the default namespace.<br/><br/>.
 
 Note that this queries the current state of the document. When the 
 document is persisted, the saving mechanism may synthesize namespaces 
 (ns1, ns2, and so on) for the purposes of persistence. These namepaces are 
 only present in the serialized form, and are not reflected back into 
 the document being saved.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>prefix</CODE> - The namespace prefix for the requested namespace.
<DT><B>Returns:</B><DD>The URI for corresponding to the specified prefix if it
 exists; otherwise, null.</DL>
</DD>
</DL>
<HR>

<A NAME="prefixForNamespace(java.lang.String)"><!-- --></A><H3>
prefixForNamespace</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A> <B>prefixForNamespace</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;namespaceURI)</PRE>
<DL>
<DD>Returns a prefix that can be used to indicate a namespace URI.  The
 current context must be at a START or STARTDOC.  If there is an
 existing prefix that indicates the URI in the current context, that
 prefix may be returned. Otherwise, a new prefix for the URI will be
 defined by adding an xmlns attribute to the current container or a
 parent container.
 
 Note that this queries the current state of the document. When the 
 document is persisted, the saving mechanism may synthesize namespaces 
 (ns1, ns2, and so on) for the purposes of persistence. These namepaces are 
 only present in the serialized form, and are not reflected back into 
 the document being saved.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespaceURI</CODE> - The namespace URI corresponding to the requested
 prefix.
<DT><B>Returns:</B><DD>The prefix corresponding to the specified URI if it exists; 
 otherwise, a newly generated prefix.</DL>
</DD>
</DL>
<HR>

<A NAME="getAllNamespaces(java.util.Map)"><!-- --></A><H3>
getAllNamespaces</H3>
<PRE>
public void <B>getAllNamespaces</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Map.html">Map</A>&nbsp;addToThis)</PRE>
<DL>
<DD>Adds to the specified map, all the namespaces in scope at the container
 where this cursor is positioned. This method is useful for 
 container tokens only.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>addToThis</CODE> - The Map to add the namespaces to.</DL>
</DD>
</DL>
<HR>

<A NAME="getObject()"><!-- --></A><H3>
getObject</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlObject.html">XmlObject</A> <B>getObject</B>()</PRE>
<DL>
<DD>Returns the strongly-typed XmlObject at the current START,
 STARTDOC, or ATTR. <br/><br/>
 
 The strongly-typed object can be cast to the strongly-typed
 XBean interface corresponding to the XML Schema Type given
 by result.getSchemaType().<br/><br/>

 If a more specific type cannot be determined, an XmlObject
 whose schema type is anyType will be returned.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The strongly-typed object at the cursor's current location;
 null if the current location is not a START, STARTDOC, or ATTR.</DL>
</DD>
</DL>
<HR>

<A NAME="currentTokenType()"><!-- --></A><H3>
currentTokenType</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A> <B>currentTokenType</B>()</PRE>
<DL>
<DD>Returns the type of the current token. By definition, the current
 token is the token immediately to the right of the cursor. 
 If you're in the middle of text, before a character, you get TEXT.
 You can't dive into the text of an ATTR, COMMENT or PROCINST.<br/><br/>
 
 As an alternative, it may be more convenient for you to use one of the 
 methods that test for a particular token type. These include the methods 
 isStart(), isStartdoc(), isText(), isAttr(), and so on. Each returns a boolean 
 value indicating whether the token that follows the cursor is the type 
 in question. 
 <br/><br/>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The TokenType instance for the token at the cursor's current
 location.</DL>
</DD>
</DL>
<HR>

<A NAME="isStartdoc()"><!-- --></A><H3>
isStartdoc</H3>
<PRE>
public boolean <B>isStartdoc</B>()</PRE>
<DL>
<DD>True if the current token is a STARTDOC token type, meaning 
 at the very root of the document.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if this token is a STARTDOC token type; 
 otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isEnddoc()"><!-- --></A><H3>
isEnddoc</H3>
<PRE>
public boolean <B>isEnddoc</B>()</PRE>
<DL>
<DD>True if this token is an ENDDOC token type, meaning 
 at the very end of the document.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if this token is an ENDDOC token type; 
 otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isStart()"><!-- --></A><H3>
isStart</H3>
<PRE>
public boolean <B>isStart</B>()</PRE>
<DL>
<DD>True if this token is a START token type, meaning 
 just before an element's start.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if this token is a START token type; 
 otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isEnd()"><!-- --></A><H3>
isEnd</H3>
<PRE>
public boolean <B>isEnd</B>()</PRE>
<DL>
<DD>True if this token is an END token type, meaning 
 just before an element's end.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if this token is an END token type; 
 otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isText()"><!-- --></A><H3>
isText</H3>
<PRE>
public boolean <B>isText</B>()</PRE>
<DL>
<DD>True if the this token is a TEXT token type, meaning 
 just before or inside text.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if this token is a TEXT token type; 
 otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isAttr()"><!-- --></A><H3>
isAttr</H3>
<PRE>
public boolean <B>isAttr</B>()</PRE>
<DL>
<DD>True if this token is an ATTR token type, meaning 
 just before an attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if this token is an ATTR token type; 
 otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isNamespace()"><!-- --></A><H3>
isNamespace</H3>
<PRE>
public boolean <B>isNamespace</B>()</PRE>
<DL>
<DD>True if this token is a NAMESPACE token type, meaning 
 just before a namespace declaration.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if this token is a NAMESPACE token type; 
 otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isComment()"><!-- --></A><H3>
isComment</H3>
<PRE>
public boolean <B>isComment</B>()</PRE>
<DL>
<DD>True if this token is a COMMENT token type, meaning 
 just before a comment.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if this token is a COMMENT token type; 
 otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isProcinst()"><!-- --></A><H3>
isProcinst</H3>
<PRE>
public boolean <B>isProcinst</B>()</PRE>
<DL>
<DD>True if this token is a PROCINST token type, meaning 
 just before a processing instruction.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if this token is a PROCINST token type; 
 otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isContainer()"><!-- --></A><H3>
isContainer</H3>
<PRE>
public boolean <B>isContainer</B>()</PRE>
<DL>
<DD>True if this token is a container token. The STARTDOC and START 
 token types are containers. Containers, including documents and elements,
 have the same content model. In other words, a document and an element 
 may have the same contents. For example, a document may contain attributes 
 or text, without any child elements.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if this token is a container token; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isFinish()"><!-- --></A><H3>
isFinish</H3>
<PRE>
public boolean <B>isFinish</B>()</PRE>
<DL>
<DD>True if this token is a finish token. A finish token can be an ENDDOC
 or END token type.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if this token is a finish token; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isAnyAttr()"><!-- --></A><H3>
isAnyAttr</H3>
<PRE>
public boolean <B>isAnyAttr</B>()</PRE>
<DL>
<DD>True if this token is any attribute. This includes an ATTR token type and
 the NAMESPACE token type attribute.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the current cursor is at any attribute; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="prevTokenType()"><!-- --></A><H3>
prevTokenType</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A> <B>prevTokenType</B>()</PRE>
<DL>
<DD>Returns the type of the previous token. By definition, the previous
 token is the token immediately to the left of the cursor.<br/><br/>

 If you're in the middle of text, after a character, you get TEXT.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The TokenType instance for the token immediately before the 
 token at the cursor's current location.</DL>
</DD>
</DL>
<HR>

<A NAME="hasNextToken()"><!-- --></A><H3>
hasNextToken</H3>
<PRE>
public boolean <B>hasNextToken</B>()</PRE>
<DL>
<DD>True if there is a next token. When this is false, as when the cursor is
 at the ENDDOC token, the toNextToken() method returns NONE and does not 
 move the cursor.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if there is a next token; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="hasPrevToken()"><!-- --></A><H3>
hasPrevToken</H3>
<PRE>
public boolean <B>hasPrevToken</B>()</PRE>
<DL>
<DD>True if there is a previous token. When this is false, toPrevToken
 returns NONE and does not move the cursor.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if there is a previous token; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toNextToken()"><!-- --></A><H3>
toNextToken</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A> <B>toNextToken</B>()</PRE>
<DL>
<DD>Moves the cursor to the next token. When there are no more tokens 
 available, hasNextToken returns false and toNextToken() returns 
 NONE and does not move the cursor. Returns the token type 
 of the token to the right of the cursor upon a successful move.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The token type for the next token if the cursor was moved;
 otherwise, NONE.</DL>
</DD>
</DL>
<HR>

<A NAME="toPrevToken()"><!-- --></A><H3>
toPrevToken</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A> <B>toPrevToken</B>()</PRE>
<DL>
<DD>Moves the cursor to the previous token. When there is no
 previous token, returns NONE, otherwise returns the token
 to the left of the new position of the cursor.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The token type for the previous token if the cursor was moved;
 otherwise, NONE.</DL>
</DD>
</DL>
<HR>

<A NAME="toFirstContentToken()"><!-- --></A><H3>
toFirstContentToken</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A> <B>toFirstContentToken</B>()</PRE>
<DL>
<DD>Moves the cursor to the first token in the content of the current
 START or STARTDOC. That is, the first token after all ATTR and NAMESPACE
 tokens associated with this START.<br/><br/>

 If the current token is not a START or STARTDOC, the cursor is not
 moved and NONE is returned. If the current START or STARTDOC
 has no content, the cursor is moved to the END or ENDDOC token.<br/><br/>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The new current token type.</DL>
</DD>
</DL>
<HR>

<A NAME="toEndToken()"><!-- --></A><H3>
toEndToken</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.TokenType.html">XmlCursor.TokenType</A> <B>toEndToken</B>()</PRE>
<DL>
<DD>Moves the cursor to the END or ENDDOC token corresponding to the
 current START or STARTDOC, and returns END or ENDDOC. <br/><br/>

 If the current token is not a START or STARTDOC, the cursor is not
 moved and NONE is returned.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The new current token type.</DL>
</DD>
</DL>
<HR>

<A NAME="toNextChar(int)"><!-- --></A><H3>
toNextChar</H3>
<PRE>
public int <B>toNextChar</B>(int&nbsp;maxCharacterCount)</PRE>
<DL>
<DD>Moves the cursor forward by the specified number of characters, and
 stops at the next non-TEXT token. Returns the number of characters
 actually moved across, which is guaranteed to be less than or equal to  
 <em>maxCharacterCount</em>. If there is no further text, or if 
 there is no text at all, returns zero.<br/><br/>

 Note this does not dive into attribute values, comment contents,
 processing instruction contents, etc., but only content text.<br/><br/>

 You can pass maxCharacterCount &lt; 0 to move over all the text to the 
 right. This has the same effect as toNextToken, but returns the amount 
 of text moved over.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>maxCharacterCount</CODE> - The maximum number of characters by which
 the cursor should be moved.
<DT><B>Returns:</B><DD>The actual number of characters by which the cursor was moved; 
 0 if the cursor was not moved.</DL>
</DD>
</DL>
<HR>

<A NAME="toPrevChar(int)"><!-- --></A><H3>
toPrevChar</H3>
<PRE>
public int <B>toPrevChar</B>(int&nbsp;maxCharacterCount)</PRE>
<DL>
<DD>Moves the cursor backwards by the number of characters given.  Has
 similar characteristics to the <A HREF="../../../org/apache/xmlbeans/XmlCursor.html#toNextChar(int)"><CODE>toNextChar</CODE></A> method.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>maxCharacterCount</CODE> - The maximum number of characters by which
 the cursor should be moved.
<DT><B>Returns:</B><DD>The actual number of characters by which the cursor was moved; 
 0 if the cursor was not moved.</DL>
</DD>
</DL>
<HR>

<A NAME="toNextSibling()"><!-- --></A><H3>
toNextSibling</H3>
<PRE>
public boolean <B>toNextSibling</B>()</PRE>
<DL>
<DD>Moves the cursor to the next sibling element, or returns
 false and does not move the cursor if there is no next sibling
 element. (By definition the position of an element is the same
 as the position of its START token.)

 If the current token is not s START, the cursor will be 
 moved to the next START without moving out of the scope of the 
 current element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toPrevSibling()"><!-- --></A><H3>
toPrevSibling</H3>
<PRE>
public boolean <B>toPrevSibling</B>()</PRE>
<DL>
<DD>Moves the cursor to the previous sibling element, or returns
 false and does not move the cursor if there is no previous sibling
 element. (By definition the position of an element is the same
 as the position of its START token.)
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toParent()"><!-- --></A><H3>
toParent</H3>
<PRE>
public boolean <B>toParent</B>()</PRE>
<DL>
<DD>Moves the cursor to the parent element or STARTDOC, or returns
 false and does not move the cursor if there is no parent.<br/><br/>

 Works if you're in attributes or content. Returns false only if at
 STARTDOC. Note that the parent of an END token is the corresponding
 START token.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the cursor was moved; false if the cursor is at the STARTDOC
 token.</DL>
</DD>
</DL>
<HR>

<A NAME="toFirstChild()"><!-- --></A><H3>
toFirstChild</H3>
<PRE>
public boolean <B>toFirstChild</B>()</PRE>
<DL>
<DD>Moves the cursor to the first child element, or returns false and
 does not move the cursor if there are no element children. <br/><br/>

 If the cursor is not currently in an element, it moves into the 
 first child element of the next element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toLastChild()"><!-- --></A><H3>
toLastChild</H3>
<PRE>
public boolean <B>toLastChild</B>()</PRE>
<DL>
<DD>Moves the cursor to the last element child, or returns false and
 does not move the cursor if there are no element children.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toChild(java.lang.String)"><!-- --></A><H3>
toChild</H3>
<PRE>
public boolean <B>toChild</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;name)</PRE>
<DL>
<DD>Moves the cursor to the first child element of the specified name in 
 no namespace.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name of the element to move the cursor to.
<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toChild(java.lang.String, java.lang.String)"><!-- --></A><H3>
toChild</H3>
<PRE>
public boolean <B>toChild</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;namespace,
                       <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;name)</PRE>
<DL>
<DD>Moves the cursor to the first child element of the specified name in the 
 specified namespace.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespace</CODE> - The namespace URI for the element to move the cursor 
 to.<DD><CODE>name</CODE> - The name of the element to move to.
<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toChild(javax.xml.namespace.QName)"><!-- --></A><H3>
toChild</H3>
<PRE>
public boolean <B>toChild</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</PRE>
<DL>
<DD>Moves the cursor to the first child element of the specified qualified name.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name of the element to move the cursor to.</DL>
</DD>
</DL>
<HR>

<A NAME="toChild(int)"><!-- --></A><H3>
toChild</H3>
<PRE>
public boolean <B>toChild</B>(int&nbsp;index)</PRE>
<DL>
<DD>Moves the cursor to the child element specified by <em>index</em>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>index</CODE> - The position of the element in the sequence of child 
 elements.
<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toChild(javax.xml.namespace.QName, int)"><!-- --></A><H3>
toChild</H3>
<PRE>
public boolean <B>toChild</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name,
                       int&nbsp;index)</PRE>
<DL>
<DD>Moves the cursor to the specified <em>index</em> child element of the 
 specified name, where that element is the .
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name of the child element to move the cursor to.<DD><CODE>index</CODE> - The position of the element in the sequence of child
 elements.
<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toNextSibling(java.lang.String)"><!-- --></A><H3>
toNextSibling</H3>
<PRE>
public boolean <B>toNextSibling</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;name)</PRE>
<DL>
<DD>Moves the cursor to the next sibling element of the specified name in no
 namespace.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name of the element to move the cursor to.
<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toNextSibling(java.lang.String, java.lang.String)"><!-- --></A><H3>
toNextSibling</H3>
<PRE>
public boolean <B>toNextSibling</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;namespace,
                             <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;name)</PRE>
<DL>
<DD>Moves the cursor to the next sibling element of the specified name 
 in the specified namespace.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>namespace</CODE> - The namespace URI for the element to move the cursor
 to.<DD><CODE>name</CODE> - The name of the element to move the cursor to.
<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toNextSibling(javax.xml.namespace.QName)"><!-- --></A><H3>
toNextSibling</H3>
<PRE>
public boolean <B>toNextSibling</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</PRE>
<DL>
<DD>Moves the cursor to the next sibling element of the specified 
 qualified name.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name of the element to move the cursor to.
<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toFirstAttribute()"><!-- --></A><H3>
toFirstAttribute</H3>
<PRE>
public boolean <B>toFirstAttribute</B>()</PRE>
<DL>
<DD>Moves the cursor to the first attribute of this element, or
 returns false and does not move the cursor if there are no
 attributes. The order of attributes is arbitrary, but stable.<br/><br/>

 xmlns attributes (namespace declarations) are not considered 
 attributes by this function.<br/><br/>

 The cursor must be on a START or STARTDOC for this method to
 succeed.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toLastAttribute()"><!-- --></A><H3>
toLastAttribute</H3>
<PRE>
public boolean <B>toLastAttribute</B>()</PRE>
<DL>
<DD>Moves the cursor to the last attribute of this element, or
 returns false and does not move the cursor if there are no
 attributes. The order of attributes is arbitrary, but stable.<br/><br/>

 xmlns attributes (namespace declarations) are not considered 
 attributes by this function.<br/><br/>

 The cursor must be on a START or STARTDOC for this method
 to succeed.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toNextAttribute()"><!-- --></A><H3>
toNextAttribute</H3>
<PRE>
public boolean <B>toNextAttribute</B>()</PRE>
<DL>
<DD>Moves the cursor to the next sibling attribute, or returns
 false and does not move the cursor if there is no next
 sibling attribute. The order of attributes is arbitrary, but stable.<br/><br/>
 
 xmlns attributes (namespace declarations) are not considered 
 attributes by this function.<br/><br/>

 The cursor must be on an attribute for this method to succeed.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="toPrevAttribute()"><!-- --></A><H3>
toPrevAttribute</H3>
<PRE>
public boolean <B>toPrevAttribute</B>()</PRE>
<DL>
<DD>Moves the cursor to the previous sibling attribute, or returns
 false and does not move the cursor if there is no previous
 sibling attribute. The order of attributes is arbitrary, but stable.<br/><br/>
 
 xmlns attributes (namespace declarations) are not considered 
 attributes by this function.<br/><br/>

 The cursor must be on an attribute for this method to succeed.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the cursor was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="getAttributeText(javax.xml.namespace.QName)"><!-- --></A><H3>
getAttributeText</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A> <B>getAttributeText</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;attrName)</PRE>
<DL>
<DD>When at a START or STARTDOC, returns the attribute text for the given
 attribute. When not at a START or STARTDOC or the attribute does not
 exist, returns null.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>attrName</CODE> - The name of the attribute whose value is requested.
<DT><B>Returns:</B><DD>The attribute's value if it has one; otherwise, null.</DL>
</DD>
</DL>
<HR>

<A NAME="setAttributeText(javax.xml.namespace.QName, java.lang.String)"><!-- --></A><H3>
setAttributeText</H3>
<PRE>
public boolean <B>setAttributeText</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;attrName,
                                <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;value)</PRE>
<DL>
<DD>When at a START or STARTDOC, sets the attribute text for the given
 attribute. When not at a START or STARTDOC returns false.
 If the attribute does not exist, one is created.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>attrName</CODE> - The name of the attribute whose value is being set.<DD><CODE>value</CODE> - The new value for the attribute.
<DT><B>Returns:</B><DD>true if the new value was set; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="removeAttribute(javax.xml.namespace.QName)"><!-- --></A><H3>
removeAttribute</H3>
<PRE>
public boolean <B>removeAttribute</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;attrName)</PRE>
<DL>
<DD>When at a START or STARTDOC, removes the attribute with the given name.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>attrName</CODE> - The name of the attribute that should be removed.
<DT><B>Returns:</B><DD>true if the attribute was removed; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="getTextValue()"><!-- --></A><H3>
getTextValue</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A> <B>getTextValue</B>()</PRE>
<DL>
<DD>Gets the text value of the current document, element, attribute,
 comment, procinst or text token. <br/><br/>

 When getting the text value of an element, non-text content such
 as comments and processing instructions are ignored and text is concatenated.
 For elements that have nested element children, this
 returns the concatenated text of all mixed content and the
 text of all the element children, recursing in first-to-last
 depthfirst order.<br/><br/>

 For attributes, this returns the attribute value.<br/><br/>

 For comments and processing instructions, this returns the text contents 
 of the comment or PI, not including the delimiting sequences &lt;!-- --&gt;, &lt;? ?&gt;.
<br/><br/>
 If the current token is not a START, STARTDOC, TEXT, ATTR, COMMENT, or
 PROCINST, this returns null. The value of an empty tag is the
 empty string.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The text value of the current token, if the token's type is
 START, STARTDOC, TEXT, ATTR, COMMENT, or PROCINST; null if the type is
 END, ENDDOC, NONE, or NAMESPACE.</DL>
</DD>
</DL>
<HR>

<A NAME="getTextValue(char[], int, int)"><!-- --></A><H3>
getTextValue</H3>
<PRE>
public int <B>getTextValue</B>(char[]&nbsp;returnedChars,
                        int&nbsp;offset,
                        int&nbsp;maxCharacterCount)</PRE>
<DL>
<DD>Copies the text value of the current document, element, attribute,
 comment, processing instruction or text token, counting right from 
 this cursor's location up to <em>maxCharacterCount</em>,
 and copies the returned text into <em>returnedChars</em>. <br/><br/>
 
 When getting the text value of an element, non-text content such
 as comments and processing instructions are ignored and text is concatenated.
 For elements that have nested element children, this
 returns the concatenated text of all mixed content and the
 text of all the element children, recursing in first-to-last
 depthfirst order.<br/><br/>

 For attributes, this returns the attribute value.<br/><br/>

 For comments and processing instructions, this returns the text contents 
 of the comment or PI, not including the delimiting sequences &lt;!-- --&gt;, &lt;? ?&gt;.
 <br/><br/>
 
 If the current token is END, ENDDOC, or NAMESPACE, this returns 0. 
 The value of an empty tag is the empty string.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>returnedChars</CODE> - A character array to hold the returned characters.<DD><CODE>offset</CODE> - The position within returnedChars to which the first of the 
 returned characters should be copied.<DD><CODE>maxCharacterCount</CODE> - The maximum number of characters after this cursor's 
 location to copy.
<DT><B>Returns:</B><DD>The actual number of characters copied; 0 if no characters 
 were copied.</DL>
</DD>
</DL>
<HR>

<A NAME="setTextValue(java.lang.String)"><!-- --></A><H3>
setTextValue</H3>
<PRE>
public void <B>setTextValue</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</PRE>
<DL>
<DD>Sets the text value of the XML at this cursor's location if that XML's
 token type is START, STARTDOC, ATTR, COMMENT or PROCINST. <br/><br/>

 For elements that have nested children this first removes all
 the content of the element and replaces it with the given text.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>text</CODE> - The text to use as a new value.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalStateException.html">IllegalStateException</A></CODE> - If the token type at this
 cursor's location is not START, STARTDOC, ATTR, COMMENT or
 PROCINST.</DL>
</DD>
</DL>
<HR>

<A NAME="setTextValue(char[], int, int)"><!-- --></A><H3>
setTextValue</H3>
<PRE>
public void <B>setTextValue</B>(char[]&nbsp;sourceChars,
                         int&nbsp;offset,
                         int&nbsp;length)</PRE>
<DL>
<DD>Sets the text value of the XML at this cursor's location (if that XML's
 token type is START, STARTDOC, ATTR, COMMENT or PROCINST) to the 
 contents of the specified character array. <br/><br/>

 For elements that have nested children this first removes all
 the content of the element and replaces it with the given text.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>sourceChars</CODE> - A character array containing the XML's new value.<DD><CODE>offset</CODE> - The position within sourceChars from which the first of 
 the source characters should be copied.<DD><CODE>length</CODE> - The maximum number of characters to set as the XML's new
 value.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the token type at this
 cursor's location is not START, STARTDOC, ATTR, COMMENT or
 PROCINST.</DL>
</DD>
</DL>
<HR>

<A NAME="getChars()"><!-- --></A><H3>
getChars</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A> <B>getChars</B>()</PRE>
<DL>
<DD>Returns characters to the right of the cursor up to the next token.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getChars(char[], int, int)"><!-- --></A><H3>
getChars</H3>
<PRE>
public int <B>getChars</B>(char[]&nbsp;returnedChars,
                    int&nbsp;offset,
                    int&nbsp;maxCharacterCount)</PRE>
<DL>
<DD>Copies characters up to the specified maximum number, counting right from 
 this cursor's location to the character at <em>maxCharacterCount</em>.  The 
 returned characters are added to <em>returnedChars</em>, with the first
 character copied to the <em>offset</em> position. The <em>maxCharacterCount</em> 
 parameter should be less than or equal to the length of <em>returnedChars</em> 
 minus <em>offset</em>. Copies a number of characters, which is 
 either <em>maxCharacterCount</em> or the number of characters up to the next token, 
 whichever is less.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>returnedChars</CODE> - A character array to hold the returned characters.<DD><CODE>offset</CODE> - The position within returnedChars at which the first of the 
 returned characters should be added.<DD><CODE>maxCharacterCount</CODE> - The maximum number of characters after this cursor's 
 location to return.
<DT><B>Returns:</B><DD>The actual number of characters returned; 0 if no characters 
 were returned or if the current token is not TEXT.</DL>
</DD>
</DL>
<HR>

<A NAME="toStartDoc()"><!-- --></A><H3>
toStartDoc</H3>
<PRE>
public void <B>toStartDoc</B>()</PRE>
<DL>
<DD>Moves the cursor to the STARTDOC token, which is the 
 root of the document.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="toEndDoc()"><!-- --></A><H3>
toEndDoc</H3>
<PRE>
public void <B>toEndDoc</B>()</PRE>
<DL>
<DD>Moves the cursor to the ENDDOC token, which is the end
 of the document.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isInSameDocument(org.apache.xmlbeans.XmlCursor)"><!-- --></A><H3>
isInSameDocument</H3>
<PRE>
public boolean <B>isInSameDocument</B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;cursor)</PRE>
<DL>
<DD>Determines if the specified cursor is in the same document as
 this cursor.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cursor</CODE> - The cursor that may be in the same document
 as this cursor.
<DT><B>Returns:</B><DD>true if the specified cursor is in the same document;
 otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="comparePosition(org.apache.xmlbeans.XmlCursor)"><!-- --></A><H3>
comparePosition</H3>
<PRE>
public int <B>comparePosition</B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;cursor)</PRE>
<DL>
<DD>Returns an integer indicating whether this cursor is before, 
 after, or at the same position as the specified cursor. <br/><br/>
 
 <code>a.comparePosition(b) < 0</code> means a is to the left of b.<br/>
 <code>a.comparePosition(b) == 0</code> means a is at the same position as b.<br/>
 <code>a.comparePosition(b) > 0</code> means a is to the right of b.<br/><br/>

 The sort order of cursors in the document is the token order.
 For example, if cursor "a" is at a START token and the cursor "b"
 is at a token within the contents of the same element, then
 a.comparePosition(b) will return -1, meaning that the position
 of a is before b.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cursor</CODE> - The cursor whose position should be compared
 with this cursor.
<DT><B>Returns:</B><DD>1 if this cursor is after the specified cursor; 0 if 
 this cursor is at the same position as the specified cursor; 
 -1 if this cursor is before the specified cursor.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the specified
 cursor is not in the same document as this cursor.</DL>
</DD>
</DL>
<HR>

<A NAME="isLeftOf(org.apache.xmlbeans.XmlCursor)"><!-- --></A><H3>
isLeftOf</H3>
<PRE>
public boolean <B>isLeftOf</B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;cursor)</PRE>
<DL>
<DD>Determines if this cursor is to the left of (or before)
 the specified cursor. Note that this is the same as 
 <code>a.comparePosition(b) &lt; 0 </code>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cursor</CODE> - The cursor whose position should be compared
 with this cursor.
<DT><B>Returns:</B><DD>true if this cursor is to the left of the specified
 cursor; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isAtSamePositionAs(org.apache.xmlbeans.XmlCursor)"><!-- --></A><H3>
isAtSamePositionAs</H3>
<PRE>
public boolean <B>isAtSamePositionAs</B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;cursor)</PRE>
<DL>
<DD>Determines if this cursor is at the same position as
 the specified cursor. Note that this is the same as 
 <code>a.comparePosition(b) == 0 </code>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cursor</CODE> - The cursor whose position should be compared
 with this cursor.
<DT><B>Returns:</B><DD>true if this cursor is at the same position as 
 the specified cursor; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="isRightOf(org.apache.xmlbeans.XmlCursor)"><!-- --></A><H3>
isRightOf</H3>
<PRE>
public boolean <B>isRightOf</B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;cursor)</PRE>
<DL>
<DD>Determines if this cursor is to the right of (or after)
 the specified cursor. Note that this is the same as 
 <code>a.comparePosition(b) &gt; 0 </code>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cursor</CODE> - The cursor whose position should be compared
 with this cursor.
<DT><B>Returns:</B><DD>true if this cursor is to the right of the specified
 cursor; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="execQuery(java.lang.String)"><!-- --></A><H3>
execQuery</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A> <B>execQuery</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;query)</PRE>
<DL>
<DD>Executes the specified XQuery expression against the XML this
 cursor is in. <br/><br/>
 
 The query may be a String or a compiled query. You can precompile
 an XQuery expression using the XmlBeans.compileQuery method. <br/><br>
 
 The root referred to by the expression should be given as 
 a dot. The following is an example path expression:
 <pre>
 XmlCursor results = cursor.execQuery("purchase-order/line-item[price &lt;= 20.00]");
 </pre>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>query</CODE> - The XQuery expression to execute.
<DT><B>Returns:</B><DD>A cursor containing the results of the query.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/xmlbeans/XmlRuntimeException.html">XmlRuntimeException</A></CODE> - If the query expression is invalid.</DL>
</DD>
</DL>
<HR>

<A NAME="execQuery(java.lang.String, org.apache.xmlbeans.XmlOptions)"><!-- --></A><H3>
execQuery</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A> <B>execQuery</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;query,
                           <A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</PRE>
<DL>
<DD>Executes the specified XQuery expression against the XML this
 cursor is in, and using the specified options. <br/><br/>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>query</CODE> - The XQuery expression to execute.<DD><CODE>options</CODE> - Options for the query. For example, you can call 
 the <A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setXqueryCurrentNodeVar(java.lang.String)"><CODE>XmlOptions.setXqueryCurrentNodeVar(String)</CODE></A>
 method to specify a particular name for the query expression 
 variable that indicates the context node.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../org/apache/xmlbeans/XmlRuntimeException.html">XmlRuntimeException</A></CODE> - If the query expression is invalid.</DL>
</DD>
</DL>
<HR>

<A NAME="getDocChangeStamp()"><!-- --></A><H3>
getDocChangeStamp</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.ChangeStamp.html">XmlCursor.ChangeStamp</A> <B>getDocChangeStamp</B>()</PRE>
<DL>
<DD>Returns the current change stamp for the document the current cursor is in. 
 This change stamp can be queried at a later point in time to find out
 if the document has changed.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>The change stamp for the document the current cursor is in.</DL>
</DD>
</DL>
<HR>

<A NAME="setBookmark(org.apache.xmlbeans.XmlCursor.XmlBookmark)"><!-- --></A><H3>
setBookmark</H3>
<PRE>
public void <B>setBookmark</B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlBookmark.html">XmlCursor.XmlBookmark</A>&nbsp;bookmark)</PRE>
<DL>
<DD>Sets a bookmark to the document at this cursor's location.

 The bookmark is attached to the token in the tree immediately 
 after the cursor. If the tree is manipulated to move
 that object to a different place, the bookmark moves with it.
 If the tree is manipulated to delete that token from the
 tree, the bookmark is orphaned. Copy operations do not copy
 bookmarks.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>bookmark</CODE> - The bookmark to set.</DL>
</DD>
</DL>
<HR>

<A NAME="getBookmark(java.lang.Object)"><!-- --></A><H3>
getBookmark</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlBookmark.html">XmlCursor.XmlBookmark</A> <B>getBookmark</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html">Object</A>&nbsp;key)</PRE>
<DL>
<DD>Retrieves the bookmark with the specified key 
 at this cursor's location. If there is no bookmark whose key is 
 given by the specified key at the current position, null is returned. 
 If the <A HREF="../../../org/apache/xmlbeans/XmlCursor.XmlBookmark.html#getKey()"><CODE>getKey</CODE></A> method is not overridden on 
 the bookmark, then the bookmark's class is used as the key.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - The key for the bookmark to retrieve.
<DT><B>Returns:</B><DD>The requested bookmark; null if there is no bookmark
 corresponding to the specified key.</DL>
</DD>
</DL>
<HR>

<A NAME="clearBookmark(java.lang.Object)"><!-- --></A><H3>
clearBookmark</H3>
<PRE>
public void <B>clearBookmark</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html">Object</A>&nbsp;key)</PRE>
<DL>
<DD>Clears the bookmark whose key is specified, if the bookmark
 exists at this cursor's location.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - The for the bookmark to clear.</DL>
</DD>
</DL>
<HR>

<A NAME="getAllBookmarkRefs(java.util.Collection)"><!-- --></A><H3>
getAllBookmarkRefs</H3>
<PRE>
public void <B>getAllBookmarkRefs</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collection.html">Collection</A>&nbsp;listToFill)</PRE>
<DL>
<DD>Retrieves all the bookmarks at this location, adding them to
 the specified collection. Bookmarks held by weak references are
 added to this collection as Weak referenced objects pointing to the
 bookmark.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>listToFill</CODE> - The collection that will contain bookmarks
 returned by this method.</DL>
</DD>
</DL>
<HR>

<A NAME="removeXml()"><!-- --></A><H3>
removeXml</H3>
<PRE>
public boolean <B>removeXml</B>()</PRE>
<DL>
<DD>Removes the XML that is immediately after this cursor.
 
 For the TEXT, ATTR, NAMESPACE, COMMENT and PROCINST tokens, a single 
 token is removed. For a START token, the corresponding element and all 
 of its contents are removed. For all other tokens, this is a no-op. 
 You cannot remove a STARTDOC.
 
 The cursors located in the XML that was removed all collapse to the 
 same location. All bookmarks in this XML will be orphaned.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if anything was removed; false only if the cursor is 
 just before END or ENDDOC token.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the cursor is at a 
 STARTDOC token.</DL>
</DD>
</DL>
<HR>

<A NAME="moveXml(org.apache.xmlbeans.XmlCursor)"><!-- --></A><H3>
moveXml</H3>
<PRE>
public boolean <B>moveXml</B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;toHere)</PRE>
<DL>
<DD>Moves the XML immediately after this cursor to the location
 specified by the <em>toHere</em> cursor, shifting XML at that location 
 to the right to make room. For the TEXT, ATTR, NAMESPACE, 
 COMMENT and PROCINST tokens, a single token is moved. For a start token, the
 element and all of its contents are moved. For all other tokens, this
 is a no-op.
 
 The bookmarks located in the XML that was moved also move to the
 new location; the cursors don't move with the content.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>toHere</CODE> - The cursor at the location to which the XML should
 be moved.
<DT><B>Returns:</B><DD>true if anything was moved; false only if the cursor is 
 just before END or ENDDOC token.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the operation is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="copyXml(org.apache.xmlbeans.XmlCursor)"><!-- --></A><H3>
copyXml</H3>
<PRE>
public boolean <B>copyXml</B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;toHere)</PRE>
<DL>
<DD>Copies the XML immediately after this cursor to the location
 specified by the <em>toHere</em> cursor. For the TEXT, ATTR, NAMESPACE, 
 COMMENT and PROCINST tokens, a single token is copied.  For a start token, 
 the element and all of its contents are copied. For all other tokens, this
 is a no-op.
 
 The cursors and bookmarks located in the XML that was copied are also copied 
 to the new location.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>toHere</CODE> - The cursor at the location to which the XML should
 be copied.
<DT><B>Returns:</B><DD>true if anything was copied; false if the token supports the operation,
 but nothing was copied.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the operation is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="removeXmlContents()"><!-- --></A><H3>
removeXmlContents</H3>
<PRE>
public boolean <B>removeXmlContents</B>()</PRE>
<DL>
<DD>Removes the contents of the container (STARTDOC OR START) immediately after
 this cursor. For all other situations, returns false. Does
 not remove attributes or namspaces.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if anything was copied; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="moveXmlContents(org.apache.xmlbeans.XmlCursor)"><!-- --></A><H3>
moveXmlContents</H3>
<PRE>
public boolean <B>moveXmlContents</B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;toHere)</PRE>
<DL>
<DD>Moves the contents of the container (STARTDOC OR START) immediately after
 this cursor to the location specified by the <em>toHere</em> cursor.
 For all other situations, returns false. Does not move attributes or
 namespaces.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>toHere</CODE> - The cursor at the location to which the XML should be moved.
<DT><B>Returns:</B><DD>true if anything was moved; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="copyXmlContents(org.apache.xmlbeans.XmlCursor)"><!-- --></A><H3>
copyXmlContents</H3>
<PRE>
public boolean <B>copyXmlContents</B>(<A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;toHere)</PRE>
<DL>
<DD>Copies the contents of the container (STARTDOC OR START) immediately to
 the right of the cursor to the location specified by the <em>toHere</em> cursor.
 For all other situations, returns false.  Does not copy attributes or
 namespaces.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>toHere</CODE> - The cursor at the location to which the XML should
 be copied.
<DT><B>Returns:</B><DD>true if anything was copied; otherwise, false.</DL>
</DD>
</DL>
<HR>

<A NAME="removeChars(int)"><!-- --></A><H3>
removeChars</H3>
<PRE>
public int <B>removeChars</B>(int&nbsp;maxCharacterCount)</PRE>
<DL>
<DD>Removes characters up to the specified maximum number, counting right from 
 this cursor's location to the character at <em>maxCharacterCount</em>. The 
 space remaining from removing the characters collapses up to this cursor.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>maxCharacterCount</CODE> - The maximum number of characters after this cursor's 
 location to remove.
<DT><B>Returns:</B><DD>The actual number of characters removed.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the operation is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="moveChars(int, org.apache.xmlbeans.XmlCursor)"><!-- --></A><H3>
moveChars</H3>
<PRE>
public int <B>moveChars</B>(int&nbsp;maxCharacterCount,
                     <A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;toHere)</PRE>
<DL>
<DD>Moves characters immediately after this cursor to the position immediately 
 after the specified cursor. Characters are counted to the right up to the
 specified maximum number. XML after the destination cursor is 
 shifted to the right to make room. The space remaining from moving the 
 characters collapses up to this cursor.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>maxCharacterCount</CODE> - The maximum number of characters after this cursor's 
 location to move.<DD><CODE>toHere</CODE> - The cursor to which the characters should be moved.
<DT><B>Returns:</B><DD>The actual number of characters moved.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the operation is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="copyChars(int, org.apache.xmlbeans.XmlCursor)"><!-- --></A><H3>
copyChars</H3>
<PRE>
public int <B>copyChars</B>(int&nbsp;maxCharacterCount,
                     <A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>&nbsp;toHere)</PRE>
<DL>
<DD>Copies characters to the position immediately after the specified cursor.
 Characters are counted to the right up to the specified maximum number. 
 XML after the destination cursor is shifted to the right to make room.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>maxCharacterCount</CODE> - The maximum number of characters after this cursor's 
 location to copy.<DD><CODE>toHere</CODE> - The cursor to which the characters should be copied.
<DT><B>Returns:</B><DD>The actual number of characters copied.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the operation is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertChars(java.lang.String)"><!-- --></A><H3>
insertChars</H3>
<PRE>
public void <B>insertChars</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</PRE>
<DL>
<DD>Inserts the specified text immediately before this cursor's location.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>text</CODE> - The text to insert.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertElement(javax.xml.namespace.QName)"><!-- --></A><H3>
insertElement</H3>
<PRE>
public void <B>insertElement</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</PRE>
<DL>
<DD>Inserts an element immediately before this cursor's location, giving 
 the element the specified qualified name.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The qualified name for the element.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertElement(java.lang.String)"><!-- --></A><H3>
insertElement</H3>
<PRE>
public void <B>insertElement</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName)</PRE>
<DL>
<DD>Inserts an element immediately before this cursor's location, giving 
 the element the specified local name.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>localName</CODE> - The local name for the new element.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertElement(java.lang.String, java.lang.String)"><!-- --></A><H3>
insertElement</H3>
<PRE>
public void <B>insertElement</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName,
                          <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;uri)</PRE>
<DL>
<DD>Inserts a new element immediately before this cursor's location, giving the
 element the specified local name and associating it with specified namespace
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>localName</CODE> - The local name for the new element.<DD><CODE>uri</CODE> - The URI for the new element's namespace.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="beginElement(javax.xml.namespace.QName)"><!-- --></A><H3>
beginElement</H3>
<PRE>
public void <B>beginElement</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</PRE>
<DL>
<DD>Inserts a new element around this cursor, giving the element the specified 
 qualified name. After the element is inserted, this cursor is between its start 
 and end. This cursor can then be used to insert additional XML into 
 the new element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The qualified name for the new element.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="beginElement(java.lang.String)"><!-- --></A><H3>
beginElement</H3>
<PRE>
public void <B>beginElement</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName)</PRE>
<DL>
<DD>Inserts a new element around this cursor, giving the element the specified 
 local name. After the element is inserted, this cursor is between its start 
 and end. This cursor can then be used to insert additional XML into 
 the new element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>localName</CODE> - The local name for the new element.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="beginElement(java.lang.String, java.lang.String)"><!-- --></A><H3>
beginElement</H3>
<PRE>
public void <B>beginElement</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName,
                         <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;uri)</PRE>
<DL>
<DD>Inserts a new element around this cursor, giving the element the specified 
 local name and associating it with the specified namespace. After the element 
 is inserted, this cursor is between its start and end. This cursor 
 can then be used to insert additional XML into the new element.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>localName</CODE> - The local name for the new element.<DD><CODE>uri</CODE> - The URI for the new element's namespace.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertElementWithText(javax.xml.namespace.QName, java.lang.String)"><!-- --></A><H3>
insertElementWithText</H3>
<PRE>
public void <B>insertElementWithText</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name,
                                  <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</PRE>
<DL>
<DD>Inserts a new element immediately before this cursor's location, giving the
 element the specified qualified name and content.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The qualified name for the new element.<DD><CODE>text</CODE> - The content for the new element.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertElementWithText(java.lang.String, java.lang.String)"><!-- --></A><H3>
insertElementWithText</H3>
<PRE>
public void <B>insertElementWithText</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName,
                                  <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</PRE>
<DL>
<DD>Inserts a new element immediately before this cursor's location, giving the
 element the specified local name and content.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>localName</CODE> - The local name for the new element.<DD><CODE>text</CODE> - The content for the new element.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertElementWithText(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
insertElementWithText</H3>
<PRE>
public void <B>insertElementWithText</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName,
                                  <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;uri,
                                  <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</PRE>
<DL>
<DD>Inserts a new element immediately before this cursor's location, giving the
 element the specified local name, associating it with the specified namespace, 
 and giving it the specified content.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>localName</CODE> - The local name for the new element.<DD><CODE>uri</CODE> - The URI for the new element's namespace.<DD><CODE>text</CODE> - The content for the new element.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertAttribute(java.lang.String)"><!-- --></A><H3>
insertAttribute</H3>
<PRE>
public void <B>insertAttribute</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName)</PRE>
<DL>
<DD>Inserts a new attribute immediately before this cursor's location, giving it
 the specified local name.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>localName</CODE> - The local name for the new attribute.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertAttribute(java.lang.String, java.lang.String)"><!-- --></A><H3>
insertAttribute</H3>
<PRE>
public void <B>insertAttribute</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;localName,
                            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;uri)</PRE>
<DL>
<DD>Inserts a new attribute immediately before this cursor's location, giving it
 the specified local name and associating it with the specified namespace.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>localName</CODE> - The local name for the new attribute.<DD><CODE>uri</CODE> - The URI for the new attribute's namespace.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertAttribute(javax.xml.namespace.QName)"><!-- --></A><H3>
insertAttribute</H3>
<PRE>
public void <B>insertAttribute</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</PRE>
<DL>
<DD>Inserts a new attribute immediately before this cursor's location, giving it
 the specified name.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The local name for the new attribute.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertAttributeWithValue(java.lang.String, java.lang.String)"><!-- --></A><H3>
insertAttributeWithValue</H3>
<PRE>
public void <B>insertAttributeWithValue</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;Name,
                                     <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;value)</PRE>
<DL>
<DD>Inserts a new attribute immediately before this cursor's location, giving it
 the specified value and name.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>Name</CODE> - The local name for the new attribute.<DD><CODE>value</CODE> - The value for the new attribute.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertAttributeWithValue(java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
insertAttributeWithValue</H3>
<PRE>
public void <B>insertAttributeWithValue</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;name,
                                     <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;uri,
                                     <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;value)</PRE>
<DL>
<DD>Inserts an attribute immediately before the cursor's location, giving it
 the specified name and value, and associating it with the specified namespace.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name for the new attribute.<DD><CODE>uri</CODE> - The URI for the new attribute's namespace.<DD><CODE>value</CODE> - The value for the new attribute.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertAttributeWithValue(javax.xml.namespace.QName, java.lang.String)"><!-- --></A><H3>
insertAttributeWithValue</H3>
<PRE>
public void <B>insertAttributeWithValue</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name,
                                     <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;value)</PRE>
<DL>
<DD>Inserts an attribute immediately before the cursor's location, giving it
 the specified name and value.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name for the new attribute.<DD><CODE>value</CODE> - The value for the new attribute.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertNamespace(java.lang.String, java.lang.String)"><!-- --></A><H3>
insertNamespace</H3>
<PRE>
public void <B>insertNamespace</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;prefix,
                            <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;namespace)</PRE>
<DL>
<DD>Inserts a namespace declaration immediately before the cursor's location, 
 giving it the specified prefix and URI.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>prefix</CODE> - The prefix for the namespace.<DD><CODE>namespace</CODE> - The URI for the namespace.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertComment(java.lang.String)"><!-- --></A><H3>
insertComment</H3>
<PRE>
public void <B>insertComment</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</PRE>
<DL>
<DD>Inserts an XML comment immediately before the cursor's location, 
 giving it the specified content.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>text</CODE> - The new comment's content.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<HR>

<A NAME="insertProcInst(java.lang.String, java.lang.String)"><!-- --></A><H3>
insertProcInst</H3>
<PRE>
public void <B>insertProcInst</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;target,
                           <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A>&nbsp;text)</PRE>
<DL>
<DD>Inserts an XML processing instruction immediately before the cursor's location, 
 giving it the specified target and text.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>target</CODE> - The target for the processing instruction.<DD><CODE>text</CODE> - The new processing instruction's text.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - If the insertion is not allowed
 at the cursor's location.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_bottom"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlByte.html"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlCursor.ChangeStamp.html"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="XmlCursor.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;
<SCRIPT>
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>

</BODY>
</HTML>
