<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<TITLE>
StdXMLReader
</TITLE>

<META NAME="keywords" CONTENT="processing.xml.StdXMLReader class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="StdXMLReader";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <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="../../processing/xml/StdXMLParser.html" title="class in processing.xml"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../index.html?processing/xml/StdXMLReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="StdXMLReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../allclasses-noframe.html"><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;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
processing.xml</FONT>
<BR>
Class StdXMLReader</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>processing.xml.StdXMLReader</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>StdXMLReader</B><DT>extends java.lang.Object</DL>
</PRE>

<P>
StdXMLReader reads the data to be parsed.
<P>

<P>
<HR>

<P>

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

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/xml/StdXMLReader.html#StdXMLReader(java.io.InputStream)">StdXMLReader</A></B>(java.io.InputStream&nbsp;stream)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initializes the XML reader.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/xml/StdXMLReader.html#StdXMLReader(java.io.Reader)">StdXMLReader</A></B>(java.io.Reader&nbsp;reader)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initializes the XML reader.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../processing/xml/StdXMLReader.html#StdXMLReader(java.lang.String, java.lang.String)">StdXMLReader</A></B>(java.lang.String&nbsp;publicID,
             java.lang.String&nbsp;systemID)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initializes the reader from a system and public ID.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</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="../../processing/xml/StdXMLReader.html#atEOF()">atEOF</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if there are no more characters left to be read.</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="../../processing/xml/StdXMLReader.html#atEOFOfCurrentStream()">atEOFOfCurrentStream</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if the current stream has no more characters left to be
 read.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../processing/xml/StdXMLReader.html" title="class in processing.xml">StdXMLReader</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/StdXMLReader.html#fileReader(java.lang.String)">fileReader</A></B>(java.lang.String&nbsp;filename)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new reader using a file as input.</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="../../processing/xml/StdXMLReader.html#getLineNr()">getLineNr</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the line number of the data in the current stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/StdXMLReader.html#getPublicID()">getPublicID</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current public ID.</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="../../processing/xml/StdXMLReader.html#getStreamLevel()">getStreamLevel</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current "level" of the stream on the stack of streams.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/StdXMLReader.html#getSystemID()">getSystemID</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current system ID.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.io.Reader</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/StdXMLReader.html#openStream(java.lang.String, java.lang.String)">openStream</A></B>(java.lang.String&nbsp;publicID,
           java.lang.String&nbsp;systemID)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Opens a stream from a public and system ID.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;char</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/StdXMLReader.html#read()">read</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads a character.</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="../../processing/xml/StdXMLReader.html#setPublicID(java.lang.String)">setPublicID</A></B>(java.lang.String&nbsp;publicID)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the public ID of the current 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="../../processing/xml/StdXMLReader.html#setSystemID(java.lang.String)">setSystemID</A></B>(java.lang.String&nbsp;systemID)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the system ID of the current 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="../../processing/xml/StdXMLReader.html#startNewStream(java.io.Reader)">startNewStream</A></B>(java.io.Reader&nbsp;reader)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starts a new stream from a Java reader.</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="../../processing/xml/StdXMLReader.html#startNewStream(java.io.Reader, boolean)">startNewStream</A></B>(java.io.Reader&nbsp;reader,
               boolean&nbsp;isInternalEntity)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starts a new stream from a Java reader.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../processing/xml/StdXMLReader.html" title="class in processing.xml">StdXMLReader</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../processing/xml/StdXMLReader.html#stringReader(java.lang.String)">stringReader</A></B>(java.lang.String&nbsp;str)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new reader using a string as input.</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="../../processing/xml/StdXMLReader.html#unread(char)">unread</A></B>(char&nbsp;ch)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pushes the last character read back to the stream.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

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

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="StdXMLReader(java.lang.String, java.lang.String)"><!-- --></A><H3>
StdXMLReader</H3>
<PRE>
public <B>StdXMLReader</B>(java.lang.String&nbsp;publicID,
                    java.lang.String&nbsp;systemID)
             throws java.net.MalformedURLException,
                    java.io.FileNotFoundException,
                    java.io.IOException</PRE>
<DL>
<DD>Initializes the reader from a system and public ID.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>publicID</CODE> - the public ID which may be null.<DD><CODE>systemID</CODE> - the non-null system ID.
<DT><B>Throws:</B>
<DD><CODE>java.net.MalformedURLException</CODE> - if the system ID does not contain a valid URL
<DD><CODE>java.io.FileNotFoundException</CODE> - if the system ID refers to a local file which does not exist
<DD><CODE>java.io.IOException</CODE> - if an error occurred opening the stream</DL>
</DL>
<HR>

<A NAME="StdXMLReader(java.io.Reader)"><!-- --></A><H3>
StdXMLReader</H3>
<PRE>
public <B>StdXMLReader</B>(java.io.Reader&nbsp;reader)</PRE>
<DL>
<DD>Initializes the XML reader.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>reader</CODE> - the input for the XML data.</DL>
</DL>
<HR>

<A NAME="StdXMLReader(java.io.InputStream)"><!-- --></A><H3>
StdXMLReader</H3>
<PRE>
public <B>StdXMLReader</B>(java.io.InputStream&nbsp;stream)
             throws java.io.IOException</PRE>
<DL>
<DD>Initializes the XML reader.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>stream</CODE> - the input for the XML data.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - if an I/O error occurred</DL>
</DL>

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

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

<A NAME="stringReader(java.lang.String)"><!-- --></A><H3>
stringReader</H3>
<PRE>
public static <A HREF="../../processing/xml/StdXMLReader.html" title="class in processing.xml">StdXMLReader</A> <B>stringReader</B>(java.lang.String&nbsp;str)</PRE>
<DL>
<DD>Creates a new reader using a string as input.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>str</CODE> - the string containing the XML data</DL>
</DD>
</DL>
<HR>

<A NAME="fileReader(java.lang.String)"><!-- --></A><H3>
fileReader</H3>
<PRE>
public static <A HREF="../../processing/xml/StdXMLReader.html" title="class in processing.xml">StdXMLReader</A> <B>fileReader</B>(java.lang.String&nbsp;filename)
                               throws java.io.FileNotFoundException,
                                      java.io.IOException</PRE>
<DL>
<DD>Creates a new reader using a file as input.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>filename</CODE> - the name of the file containing the XML data
<DT><B>Throws:</B>
<DD><CODE>java.io.FileNotFoundException</CODE> - if the file could not be found
<DD><CODE>java.io.IOException</CODE> - if an I/O error occurred</DL>
</DD>
</DL>
<HR>

<A NAME="read()"><!-- --></A><H3>
read</H3>
<PRE>
public char <B>read</B>()
          throws java.io.IOException</PRE>
<DL>
<DD>Reads a character.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>the character
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - if no character could be read</DL>
</DD>
</DL>
<HR>

<A NAME="atEOFOfCurrentStream()"><!-- --></A><H3>
atEOFOfCurrentStream</H3>
<PRE>
public boolean <B>atEOFOfCurrentStream</B>()
                             throws java.io.IOException</PRE>
<DL>
<DD>Returns true if the current stream has no more characters left to be
 read.
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - if an I/O error occurred</DL>
</DD>
</DL>
<HR>

<A NAME="atEOF()"><!-- --></A><H3>
atEOF</H3>
<PRE>
public boolean <B>atEOF</B>()
              throws java.io.IOException</PRE>
<DL>
<DD>Returns true if there are no more characters left to be read.
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - if an I/O error occurred</DL>
</DD>
</DL>
<HR>

<A NAME="unread(char)"><!-- --></A><H3>
unread</H3>
<PRE>
public void <B>unread</B>(char&nbsp;ch)
            throws java.io.IOException</PRE>
<DL>
<DD>Pushes the last character read back to the stream.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>ch</CODE> - the character to push back.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - if an I/O error occurred</DL>
</DD>
</DL>
<HR>

<A NAME="openStream(java.lang.String, java.lang.String)"><!-- --></A><H3>
openStream</H3>
<PRE>
public java.io.Reader <B>openStream</B>(java.lang.String&nbsp;publicID,
                                 java.lang.String&nbsp;systemID)
                          throws java.net.MalformedURLException,
                                 java.io.FileNotFoundException,
                                 java.io.IOException</PRE>
<DL>
<DD>Opens a stream from a public and system ID.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>publicID</CODE> - the public ID, which may be null<DD><CODE>systemID</CODE> - the system ID, which is never null
<DT><B>Throws:</B>
<DD><CODE>java.net.MalformedURLException</CODE> - if the system ID does not contain a valid URL
<DD><CODE>java.io.FileNotFoundException</CODE> - if the system ID refers to a local file which does not exist
<DD><CODE>java.io.IOException</CODE> - if an error occurred opening the stream</DL>
</DD>
</DL>
<HR>

<A NAME="startNewStream(java.io.Reader)"><!-- --></A><H3>
startNewStream</H3>
<PRE>
public void <B>startNewStream</B>(java.io.Reader&nbsp;reader)</PRE>
<DL>
<DD>Starts a new stream from a Java reader. The new stream is used
 temporary to read data from. If that stream is exhausted, control
 returns to the parent stream.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>reader</CODE> - the non-null reader to read the new data from</DL>
</DD>
</DL>
<HR>

<A NAME="startNewStream(java.io.Reader, boolean)"><!-- --></A><H3>
startNewStream</H3>
<PRE>
public void <B>startNewStream</B>(java.io.Reader&nbsp;reader,
                           boolean&nbsp;isInternalEntity)</PRE>
<DL>
<DD>Starts a new stream from a Java reader. The new stream is used
 temporary to read data from. If that stream is exhausted, control
 returns to the parent stream.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>reader</CODE> - the non-null reader to read the new data from<DD><CODE>isInternalEntity</CODE> - true if the reader is produced by resolving
                         an internal entity</DL>
</DD>
</DL>
<HR>

<A NAME="getStreamLevel()"><!-- --></A><H3>
getStreamLevel</H3>
<PRE>
public int <B>getStreamLevel</B>()</PRE>
<DL>
<DD>Returns the current "level" of the stream on the stack of streams.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getLineNr()"><!-- --></A><H3>
getLineNr</H3>
<PRE>
public int <B>getLineNr</B>()</PRE>
<DL>
<DD>Returns the line number of the data in the current stream.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setSystemID(java.lang.String)"><!-- --></A><H3>
setSystemID</H3>
<PRE>
public void <B>setSystemID</B>(java.lang.String&nbsp;systemID)
                 throws java.net.MalformedURLException</PRE>
<DL>
<DD>Sets the system ID of the current stream.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>systemID</CODE> - the system ID
<DT><B>Throws:</B>
<DD><CODE>java.net.MalformedURLException</CODE> - if the system ID does not contain a valid URL</DL>
</DD>
</DL>
<HR>

<A NAME="setPublicID(java.lang.String)"><!-- --></A><H3>
setPublicID</H3>
<PRE>
public void <B>setPublicID</B>(java.lang.String&nbsp;publicID)</PRE>
<DL>
<DD>Sets the public ID of the current stream.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>publicID</CODE> - the public ID</DL>
</DD>
</DL>
<HR>

<A NAME="getSystemID()"><!-- --></A><H3>
getSystemID</H3>
<PRE>
public java.lang.String <B>getSystemID</B>()</PRE>
<DL>
<DD>Returns the current system ID.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getPublicID()"><!-- --></A><H3>
getPublicID</H3>
<PRE>
public java.lang.String <B>getPublicID</B>()</PRE>
<DL>
<DD>Returns the current public ID.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <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="../../processing/xml/StdXMLParser.html" title="class in processing.xml"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../processing/xml/XMLElement.html" title="class in processing.xml"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../index.html?processing/xml/StdXMLReader.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="StdXMLReader.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../allclasses-noframe.html"><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;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>
