<!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:58 PDT 2003 -->
<TITLE>
XmlTokenSource (XMLBeans Documentation)
</TITLE>
<META NAME="keywords" CONTENT="org.apache.xmlbeans.XmlTokenSource,XmlTokenSource interface">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
</HEAD>
<SCRIPT>
function asd()
{
parent.document.title="XmlTokenSource (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/XmlToken.html"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlUnsignedByte.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="XmlTokenSource.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;NESTED&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 XmlTokenSource</H2>
<DL>
<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../../org/apache/xmlbeans/SimpleValue.html">SimpleValue</A>, <A HREF="../../../org/apache/xmlbeans/XmlAnySimpleType.html">XmlAnySimpleType</A>, <A HREF="../../../org/apache/xmlbeans/XmlAnyURI.html">XmlAnyURI</A>, <A HREF="../../../org/apache/xmlbeans/XmlBase64Binary.html">XmlBase64Binary</A>, <A HREF="../../../org/apache/xmlbeans/XmlBoolean.html">XmlBoolean</A>, <A HREF="../../../org/apache/xmlbeans/XmlByte.html">XmlByte</A>, <A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A>, <A HREF="../../../org/apache/xmlbeans/XmlDate.html">XmlDate</A>, <A HREF="../../../org/apache/xmlbeans/XmlDateTime.html">XmlDateTime</A>, <A HREF="../../../org/apache/xmlbeans/XmlDecimal.html">XmlDecimal</A>, <A HREF="../../../org/apache/xmlbeans/XmlDouble.html">XmlDouble</A>, <A HREF="../../../org/apache/xmlbeans/XmlDuration.html">XmlDuration</A>, <A HREF="../../../org/apache/xmlbeans/XmlENTITIES.html">XmlENTITIES</A>, <A HREF="../../../org/apache/xmlbeans/XmlENTITY.html">XmlENTITY</A>, <A HREF="../../../org/apache/xmlbeans/XmlFloat.html">XmlFloat</A>, <A HREF="../../../org/apache/xmlbeans/XmlGDay.html">XmlGDay</A>, <A HREF="../../../org/apache/xmlbeans/XmlGMonth.html">XmlGMonth</A>, <A HREF="../../../org/apache/xmlbeans/XmlGMonthDay.html">XmlGMonthDay</A>, <A HREF="../../../org/apache/xmlbeans/XmlGYear.html">XmlGYear</A>, <A HREF="../../../org/apache/xmlbeans/XmlGYearMonth.html">XmlGYearMonth</A>, <A HREF="../../../org/apache/xmlbeans/XmlHexBinary.html">XmlHexBinary</A>, <A HREF="../../../org/apache/xmlbeans/XmlID.html">XmlID</A>, <A HREF="../../../org/apache/xmlbeans/XmlIDREF.html">XmlIDREF</A>, <A HREF="../../../org/apache/xmlbeans/XmlIDREFS.html">XmlIDREFS</A>, <A HREF="../../../org/apache/xmlbeans/XmlInt.html">XmlInt</A>, <A HREF="../../../org/apache/xmlbeans/XmlInteger.html">XmlInteger</A>, <A HREF="../../../org/apache/xmlbeans/XmlLanguage.html">XmlLanguage</A>, <A HREF="../../../org/apache/xmlbeans/XmlLong.html">XmlLong</A>, <A HREF="../../../org/apache/xmlbeans/XmlName.html">XmlName</A>, <A HREF="../../../org/apache/xmlbeans/XmlNCName.html">XmlNCName</A>, <A HREF="../../../org/apache/xmlbeans/XmlNegativeInteger.html">XmlNegativeInteger</A>, <A HREF="../../../org/apache/xmlbeans/XmlNMTOKEN.html">XmlNMTOKEN</A>, <A HREF="../../../org/apache/xmlbeans/XmlNMTOKENS.html">XmlNMTOKENS</A>, <A HREF="../../../org/apache/xmlbeans/XmlNonNegativeInteger.html">XmlNonNegativeInteger</A>, <A HREF="../../../org/apache/xmlbeans/XmlNonPositiveInteger.html">XmlNonPositiveInteger</A>, <A HREF="../../../org/apache/xmlbeans/XmlNormalizedString.html">XmlNormalizedString</A>, <A HREF="../../../org/apache/xmlbeans/XmlNOTATION.html">XmlNOTATION</A>, <A HREF="../../../org/apache/xmlbeans/XmlObject.html">XmlObject</A>, <A HREF="../../../org/apache/xmlbeans/XmlPositiveInteger.html">XmlPositiveInteger</A>, <A HREF="../../../org/apache/xmlbeans/XmlQName.html">XmlQName</A>, <A HREF="../../../org/apache/xmlbeans/XmlShort.html">XmlShort</A>, <A HREF="../../../org/apache/xmlbeans/XmlString.html">XmlString</A>, <A HREF="../../../org/apache/xmlbeans/XmlTime.html">XmlTime</A>, <A HREF="../../../org/apache/xmlbeans/XmlToken.html">XmlToken</A>, <A HREF="../../../org/apache/xmlbeans/XmlUnsignedByte.html">XmlUnsignedByte</A>, <A HREF="../../../org/apache/xmlbeans/XmlUnsignedInt.html">XmlUnsignedInt</A>, <A HREF="../../../org/apache/xmlbeans/XmlUnsignedLong.html">XmlUnsignedLong</A>, <A HREF="../../../org/apache/xmlbeans/XmlUnsignedShort.html">XmlUnsignedShort</A></DD>
</DL>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../org/apache/xmlbeans/FilterXmlObject.html">FilterXmlObject</A></DD>
</DL>
<HR>
<DL>
<DT>public interface <B>XmlTokenSource</B></DL>

<P>
Represents a holder of XML that can return an <A HREF="../../../org/apache/xmlbeans/XmlCursor.html"><CODE>XmlCursor</CODE></A>
 or copy itself to various media such as
 <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Writer.html"><CODE>Writers</CODE></A> or <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html"><CODE>Files</CODE></A>.
 Both <A HREF="../../../org/apache/xmlbeans/XmlObject.html"><CODE>XmlObject</CODE></A>
 (and thus all XML Beans) and <A HREF="../../../org/apache/xmlbeans/XmlCursor.html"><CODE>XmlCursor</CODE></A> are
 XmlTokenSource implementations.
<P>

<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../org/apache/xmlbeans/XmlObject.html"><CODE>XmlObject</CODE></A>, 
<A HREF="../../../org/apache/xmlbeans/XmlCursor.html"><CODE>XmlCursor</CODE></A></DL>
<HR>

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


<!-- =========== 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;<A HREF="../../../org/apache/xmlbeans/XmlDocumentProperties.html">XmlDocumentProperties</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#documentProperties()">documentProperties</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the XmlDocumentProperties object for the document this token
 source is associated with.</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/Object.html">Object</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#monitor()">monitor</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the synchronization object for 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.html">XmlCursor</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newCursor()">newCursor</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new XML 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/org/w3c/dom/Node.html">Node</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newDomNode()">newDomNode</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a W3C DOM Node containing the XML
 represented by this source.</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/org/w3c/dom/Node.html">Node</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newDomNode(org.apache.xmlbeans.XmlOptions)">newDomNode</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Just like newDomNode() but with options.</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/io/InputStream.html">InputStream</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newInputStream()">newInputStream</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new stream containing standard XML text, encoded
 according to the given encoding.</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/io/InputStream.html">InputStream</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newInputStream(org.apache.xmlbeans.XmlOptions)">newInputStream</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Just like newInputStream(String encoding) but with options.</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/io/Reader.html">Reader</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newReader()">newReader</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new character reader containing XML text.</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/io/Reader.html">Reader</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newReader(org.apache.xmlbeans.XmlOptions)">newReader</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Just like newReader() but with options.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://e-docs.bea.com/wls/docs81/javadocs/weblogic/xml/stream/XMLInputStream.html">XMLInputStream</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newXMLInputStream()">newXMLInputStream</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a new XmlInputStream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://e-docs.bea.com/wls/docs81/javadocs/weblogic/xml/stream/XMLInputStream.html">XMLInputStream</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/XmlTokenSource.html#newXMLInputStream(org.apache.xmlbeans.XmlOptions)">newXMLInputStream</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Just like newXMLInputStream() but with any of a number of 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/XmlTokenSource.html#save(org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler)">save</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/ContentHandler.html">ContentHandler</A>&nbsp;ch,
     <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/ext/LexicalHandler.html">LexicalHandler</A>&nbsp;lh)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the XML represented by this source to the given SAX content and
 lexical handlers.</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/XmlTokenSource.html#save(org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler, org.apache.xmlbeans.XmlOptions)">save</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/ContentHandler.html">ContentHandler</A>&nbsp;ch,
     <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/ext/LexicalHandler.html">LexicalHandler</A>&nbsp;lh,
     <A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the XML represented by this source to the given SAX content and
 lexical handlers.</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/XmlTokenSource.html#save(java.io.File)">save</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html">File</A>&nbsp;file)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the XML represented by this source to the given File.</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/XmlTokenSource.html#save(java.io.File, org.apache.xmlbeans.XmlOptions)">save</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html">File</A>&nbsp;file,
     <A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the XML represented by this source to the given File.</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/XmlTokenSource.html#save(java.io.OutputStream)">save</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/OutputStream.html">OutputStream</A>&nbsp;os)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the XML represented by this source to the given output stream.</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/XmlTokenSource.html#save(java.io.OutputStream, org.apache.xmlbeans.XmlOptions)">save</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/OutputStream.html">OutputStream</A>&nbsp;os,
     <A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the XML represented by this source to the given output stream.</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/XmlTokenSource.html#save(java.io.Writer)">save</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Writer.html">Writer</A>&nbsp;w)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the XML represented by this source to the given writer.</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/XmlTokenSource.html#save(java.io.Writer, org.apache.xmlbeans.XmlOptions)">save</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Writer.html">Writer</A>&nbsp;w,
     <A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes the XML represented by this source to the given writer.</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/XmlTokenSource.html#xmlText()">xmlText</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns standard XML text.</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/XmlTokenSource.html#xmlText(org.apache.xmlbeans.XmlOptions)">xmlText</A></B>(<A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Just like xmlText() but with options.</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="monitor()"><!-- --></A><H3>
monitor</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html">Object</A> <B>monitor</B>()</PRE>
<DL>
<DD>Returns the synchronization object for the document.  If concurrent
 multithreaded access to a document is required, the access should should
 be protected by synchronizing on this monitor() object.  There is one
 monitor per XML document tree.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="documentProperties()"><!-- --></A><H3>
documentProperties</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlDocumentProperties.html">XmlDocumentProperties</A> <B>documentProperties</B>()</PRE>
<DL>
<DD>Returns the XmlDocumentProperties object for the document this token
 source is associated with.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="newCursor()"><!-- --></A><H3>
newCursor</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/XmlCursor.html">XmlCursor</A> <B>newCursor</B>()</PRE>
<DL>
<DD>Returns a new XML cursor.

 A cursor provides random access to all the tokens in the XML
 data, plus the ability to extract strongly-typed XmlObjects
 for the data. If the data is not read-only, the XML cursor
 also allows modifications to the data.

 Using a cursor for the first time typically forces the XML
 document into memory.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="newXMLInputStream()"><!-- --></A><H3>
newXMLInputStream</H3>
<PRE>
public <A HREF="http://e-docs.bea.com/wls/docs81/javadocs/weblogic/xml/stream/XMLInputStream.html">XMLInputStream</A> <B>newXMLInputStream</B>()</PRE>
<DL>
<DD>Returns a new XmlInputStream.

 The stream starts at the current begin-tag or begin-document
 position and ends at the matching end-tag or end-document.

 This is a fail-fast stream, so if the underlying data is changed
 while the stream is being read, the stream throws a
 ConcurrentModificationException.

 Throws an IllegalStateException if the XmlTokenSource is not
 positioned at begin-tag or begin-document (e.g., if it is at
 an attribute).
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="xmlText()"><!-- --></A><H3>
xmlText</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A> <B>xmlText</B>()</PRE>
<DL>
<DD>Returns standard XML text.

 The text returned represents the document contents starting at
 the current begin-tag or begin-document and ending at the matching
 end-tag or end-document. This is same content as newReader, but
 it is returned as a single string.

 Throws an IllegalStateException if the XmlTokenSource is not
 positioned at begin-tag or begin-document (e.g., if it is at
 an attribute).
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="newInputStream()"><!-- --></A><H3>
newInputStream</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/InputStream.html">InputStream</A> <B>newInputStream</B>()</PRE>
<DL>
<DD>Returns a new stream containing standard XML text, encoded
 according to the given encoding.

 The byte stream contains contents starting at the current
 begin-tag or begin-document and ending at the matching
 end-tag or end-document.  The specified encoding is used
 and also emitted in a PI at the beginning of the stream.

 This is a fail-fast stream, so if the underlying data is changed
 while the stream is being read, the stream throws a
 ConcurrentModificationException.

 Throws an IllegalStateException if the XmlTokenSource is not
 positioned at begin-tag or begin-document (e.g., if it is at
 an attribute).
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="newReader()"><!-- --></A><H3>
newReader</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Reader.html">Reader</A> <B>newReader</B>()</PRE>
<DL>
<DD>Returns a new character reader containing XML text.

 The contents of the reader represents the document contents
 starting at the current begin-tag or begin-document and ending at
 the matching end-tag or end-document.  No encoding annotation
 will be made in the text itself.

 This is a fail-fast reader, so if the underlying data is changed
 while the reader is being read, the reader throws a
 ConcurrentModificationException.

 Throws an IllegalStateException if the XmlTokenSource is not
 positioned at begin-tag or begin-document (e.g., if it is at
 an attribute).
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="newDomNode()"><!-- --></A><H3>
newDomNode</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/Node.html">Node</A> <B>newDomNode</B>()</PRE>
<DL>
<DD>Returns a W3C DOM Node containing the XML
 represented by this source.  This is a copy of the XML, it is
 not a live with the underlying store of this token source.
 If this is the document node, then a Document is returned, else
 a DocumentFragment is returned.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="save(org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler)"><!-- --></A><H3>
save</H3>
<PRE>
public void <B>save</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/ContentHandler.html">ContentHandler</A>&nbsp;ch,
                 <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/ext/LexicalHandler.html">LexicalHandler</A>&nbsp;lh)
          throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/SAXException.html">SAXException</A></PRE>
<DL>
<DD>Writes the XML represented by this source to the given SAX content and
 lexical handlers.
<P>
<DD><DL>

<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/SAXException.html">SAXException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="save(java.io.File)"><!-- --></A><H3>
save</H3>
<PRE>
public void <B>save</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html">File</A>&nbsp;file)
          throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html">IOException</A></PRE>
<DL>
<DD>Writes the XML represented by this source to the given File.
<P>
<DD><DL>

<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html">IOException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="save(java.io.OutputStream)"><!-- --></A><H3>
save</H3>
<PRE>
public void <B>save</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/OutputStream.html">OutputStream</A>&nbsp;os)
          throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html">IOException</A></PRE>
<DL>
<DD>Writes the XML represented by this source to the given output stream.
<P>
<DD><DL>

<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html">IOException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="save(java.io.Writer)"><!-- --></A><H3>
save</H3>
<PRE>
public void <B>save</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Writer.html">Writer</A>&nbsp;w)
          throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html">IOException</A></PRE>
<DL>
<DD>Writes the XML represented by this source to the given writer.
<P>
<DD><DL>

<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html">IOException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="newXMLInputStream(org.apache.xmlbeans.XmlOptions)"><!-- --></A><H3>
newXMLInputStream</H3>
<PRE>
public <A HREF="http://e-docs.bea.com/wls/docs81/javadocs/weblogic/xml/stream/XMLInputStream.html">XMLInputStream</A> <B>newXMLInputStream</B>(<A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</PRE>
<DL>
<DD><p>Just like newXMLInputStream() but with any of a number of options. Use the 
 <em>options</em> parameter to specify the following:</p>
 
 <table>
 <tr><th>To specify this</th><th>Use this method</th></tr>
 <tr>
  <td>The character encoding to use when converting the character
  data in the XML to bytess.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setCharacterEncoding(java.lang.String)"><CODE>XmlOptions.setCharacterEncoding(java.lang.String)</CODE></A></td>
 </tr>
 <tr>
  <td>Prefix-to-namespace mappings that should be assumed
  when saving this XML. This is useful when the resulting
  XML will be part of a larger XML document, ensuring that this 
  inner document will take advantage of namespaces defined in 
  the outer document.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setSaveImplicitNamespaces(java.util.Map)"><CODE>XmlOptions.setSaveImplicitNamespaces(java.util.Map)</CODE></A></td>
 </tr>
 <tr>
  <td>Suggested namespace prefixes to use when saving. Used only
  when a namespace attribute needs to be synthesized.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setSaveSuggestedPrefixes(java.util.Map)"><CODE>XmlOptions.setSaveSuggestedPrefixes(java.util.Map)</CODE></A></td>
 </tr>
 <tr>
  <td>That namespace attributes should occur first in elements when
 the XML is saved. By default, they occur last.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setSaveNamespacesFirst()"><CODE>XmlOptions.setSaveNamespacesFirst()</CODE></A></td>
 </tr>
 <tr>
  <td>The XML should be pretty printed when saved. Note that this 
  should only be used for debugging.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setSavePrettyPrint()"><CODE>XmlOptions.setSavePrettyPrint()</CODE></A></td>
 </tr>
 <tr>
  <td>The number of spaces to use when indenting for pretty printing. 
  The default is 2.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setSavePrettyPrintIndent(int)"><CODE>XmlOptions.setSavePrettyPrintIndent(int)</CODE></A></td>
 </tr>
 <tr>
  <td>The additional number of spaces indented from the left
  for pretty printed XML.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setSavePrettyPrintOffset(int)"><CODE>XmlOptions.setSavePrettyPrintOffset(int)</CODE></A></td>
 </tr>
 <tr>
  <td>To minimize the number of namespace attributes generated for the 
  saved XML. Note that this can reduce performance significantly.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setSaveAggresiveNamespaces()"><CODE>XmlOptions.setSaveAggresiveNamespaces()</CODE></A></td>
 </tr>
 <tr>
  <td>To reduce the size of the saved document
  by allowing the use of the default namespace. Note that this can 
  potentially change the semantic meaning of the XML if unprefixed QNames are 
  present as the value of an attribute or element.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setUseDefaultNamespace()"><CODE>XmlOptions.setUseDefaultNamespace()</CODE></A></td>
 </tr>
 <tr>
  <td>To filter out processing instructions with the specified target name.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setSaveFilterProcinst(java.lang.String)"><CODE>XmlOptions.setSaveFilterProcinst(java.lang.String)</CODE></A></td>
 </tr>
 <tr>
  <td>Change the QName of the synthesized root element when saving. This 
  replaces "xml-fragment" with "fragment" in the namespace 
  http://www.openuri.org/fragment</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setSaveUseOpenFrag()"><CODE>XmlOptions.setSaveUseOpenFrag()</CODE></A></td>
 </tr>
 <tr>
  <td>Saving should begin on the element's contents.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setSaveInner()"><CODE>XmlOptions.setSaveInner()</CODE></A></td>
 </tr>
 <tr>
  <td>Saving should begin on the element, rather than its contents.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setSaveOuter()"><CODE>XmlOptions.setSaveOuter()</CODE></A></td>
 </tr>
 <tr>
  <td>To rename the document element, or to specify the document element
  for this XML.</td>
  <td><A HREF="../../../org/apache/xmlbeans/XmlOptions.html#setSaveSyntheticDocumentElement(javax.xml.namespace.QName)"><CODE>XmlOptions.setSaveSyntheticDocumentElement(javax.xml.namespace.QName)</CODE></A></td>
 </tr>
 </table>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>options</CODE> - Any of the described options.
<DT><B>Returns:</B><DD>A new validating XMLInputStream.<DT><B>See Also:</B><DD><A HREF="../../../org/apache/xmlbeans/XmlOptions.html"><CODE>XmlOptions</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="xmlText(org.apache.xmlbeans.XmlOptions)"><!-- --></A><H3>
xmlText</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html">String</A> <B>xmlText</B>(<A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</PRE>
<DL>
<DD>Just like xmlText() but with options.
 Options map may be null.
<P>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../org/apache/xmlbeans/XmlOptions.html"><CODE>XmlOptions</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="newInputStream(org.apache.xmlbeans.XmlOptions)"><!-- --></A><H3>
newInputStream</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/InputStream.html">InputStream</A> <B>newInputStream</B>(<A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</PRE>
<DL>
<DD>Just like newInputStream(String encoding) but with options.
 Options map may be null.
<P>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../org/apache/xmlbeans/XmlOptions.html"><CODE>XmlOptions</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="newReader(org.apache.xmlbeans.XmlOptions)"><!-- --></A><H3>
newReader</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Reader.html">Reader</A> <B>newReader</B>(<A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</PRE>
<DL>
<DD>Just like newReader() but with options.
 Options map may be null.
<P>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../org/apache/xmlbeans/XmlOptions.html"><CODE>XmlOptions</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="newDomNode(org.apache.xmlbeans.XmlOptions)"><!-- --></A><H3>
newDomNode</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/Node.html">Node</A> <B>newDomNode</B>(<A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)</PRE>
<DL>
<DD>Just like newDomNode() but with options.
 Options map may be null.
<P>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../org/apache/xmlbeans/XmlOptions.html"><CODE>XmlOptions</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="save(org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler, org.apache.xmlbeans.XmlOptions)"><!-- --></A><H3>
save</H3>
<PRE>
public void <B>save</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/ContentHandler.html">ContentHandler</A>&nbsp;ch,
                 <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/ext/LexicalHandler.html">LexicalHandler</A>&nbsp;lh,
                 <A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)
          throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/SAXException.html">SAXException</A></PRE>
<DL>
<DD>Writes the XML represented by this source to the given SAX content and
 lexical handlers.
<P>
<DD><DL>

<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/org/xml/sax/SAXException.html">SAXException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="save(java.io.File, org.apache.xmlbeans.XmlOptions)"><!-- --></A><H3>
save</H3>
<PRE>
public void <B>save</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html">File</A>&nbsp;file,
                 <A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)
          throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html">IOException</A></PRE>
<DL>
<DD>Writes the XML represented by this source to the given File.
<P>
<DD><DL>

<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html">IOException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="save(java.io.OutputStream, org.apache.xmlbeans.XmlOptions)"><!-- --></A><H3>
save</H3>
<PRE>
public void <B>save</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/OutputStream.html">OutputStream</A>&nbsp;os,
                 <A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)
          throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html">IOException</A></PRE>
<DL>
<DD>Writes the XML represented by this source to the given output stream.
<P>
<DD><DL>

<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html">IOException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="save(java.io.Writer, org.apache.xmlbeans.XmlOptions)"><!-- --></A><H3>
save</H3>
<PRE>
public void <B>save</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Writer.html">Writer</A>&nbsp;w,
                 <A HREF="../../../org/apache/xmlbeans/XmlOptions.html">XmlOptions</A>&nbsp;options)
          throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html">IOException</A></PRE>
<DL>
<DD>Writes the XML represented by this source to the given writer.
<P>
<DD><DL>

<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/IOException.html">IOException</A></CODE></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/XmlToken.html"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../org/apache/xmlbeans/XmlUnsignedByte.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="XmlTokenSource.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;NESTED&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>
