net.n3.nanoxml

Class StdXMLReader

public class StdXMLReader extends Object implements IXMLReader

StdXMLReader reads the data to be parsed.

Version: $Name: RELEASE_2_2_1 $, $Revision: 1.4 $

Author: Marc De Scheemaecker

Constructor Summary
StdXMLReader(String publicID, String systemID)
Initializes the reader from a system and public ID.
StdXMLReader(Reader reader)
Initializes the XML reader.
StdXMLReader(InputStream stream)
Initializes the XML reader.
Method Summary
booleanatEOF()
Returns true if there are no more characters left to be read.
booleanatEOFOfCurrentStream()
Returns true if the current stream has no more characters left to be read.
static IXMLReaderfileReader(String filename)
Creates a new reader using a file as input.
protected voidfinalize()
Cleans up the object when it's destroyed.
protected StringgetEncoding(String str)
Scans the encoding from an <?
intgetLineNr()
Returns the line number of the data in the current stream.
StringgetPublicID()
Returns the current public ID.
intgetStreamLevel()
Returns the current "level" of the stream on the stack of streams.
StringgetSystemID()
Returns the current system ID.
ReaderopenStream(String publicID, String systemID)
Opens a stream from a public and system ID.
charread()
Reads a character.
voidsetPublicID(String publicID)
Sets the public ID of the current stream.
voidsetSystemID(String systemID)
Sets the system ID of the current stream.
voidstartNewStream(Reader reader)
Starts a new stream from a Java reader.
voidstartNewStream(Reader reader, boolean isInternalEntity)
Starts a new stream from a Java reader.
protected Readerstream2reader(InputStream stream, StringBuffer charsRead)
Converts a stream to a reader while detecting the encoding.
static IXMLReaderstringReader(String str)
Creates a new reader using a string as input.
voidunread(char ch)
Pushes the last character read back to the stream.

Constructor Detail

StdXMLReader

public StdXMLReader(String publicID, String systemID)
Initializes the reader from a system and public ID.

Parameters: publicID the public ID which may be null. systemID the non-null system ID.

Throws: MalformedURLException if the system ID does not contain a valid URL FileNotFoundException if the system ID refers to a local file which does not exist IOException if an error occurred opening the stream

StdXMLReader

public StdXMLReader(Reader reader)
Initializes the XML reader.

Parameters: reader the input for the XML data.

StdXMLReader

public StdXMLReader(InputStream stream)
Initializes the XML reader.

Parameters: stream the input for the XML data.

Throws: java.io.IOException if an I/O error occurred

Method Detail

atEOF

public boolean atEOF()
Returns true if there are no more characters left to be read.

Throws: java.io.IOException if an I/O error occurred

atEOFOfCurrentStream

public boolean atEOFOfCurrentStream()
Returns true if the current stream has no more characters left to be read.

Throws: java.io.IOException if an I/O error occurred

fileReader

public static IXMLReader fileReader(String filename)
Creates a new reader using a file as input.

Parameters: filename the name of the file containing the XML data

Throws: java.io.FileNotFoundException if the file could not be found java.io.IOException if an I/O error occurred

finalize

protected void finalize()
Cleans up the object when it's destroyed.

getEncoding

protected String getEncoding(String str)
Scans the encoding from an <?xml...?> tag.

Parameters: str the first tag in the XML data.

Returns: the encoding, or null if no encoding has been specified.

getLineNr

public int getLineNr()
Returns the line number of the data in the current stream.

getPublicID

public String getPublicID()
Returns the current public ID.

getStreamLevel

public int getStreamLevel()
Returns the current "level" of the stream on the stack of streams.

getSystemID

public String getSystemID()
Returns the current system ID.

openStream

public Reader openStream(String publicID, String systemID)
Opens a stream from a public and system ID.

Parameters: publicID the public ID, which may be null systemID the system ID, which is never null

Throws: java.net.MalformedURLException if the system ID does not contain a valid URL java.io.FileNotFoundException if the system ID refers to a local file which does not exist java.io.IOException if an error occurred opening the stream

read

public char read()
Reads a character.

Returns: the character

Throws: java.io.IOException if no character could be read

setPublicID

public void setPublicID(String publicID)
Sets the public ID of the current stream.

Parameters: publicID the public ID

setSystemID

public void setSystemID(String systemID)
Sets the system ID of the current stream.

Parameters: systemID the system ID

Throws: java.net.MalformedURLException if the system ID does not contain a valid URL

startNewStream

public void startNewStream(Reader reader)
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.

Parameters: reader the non-null reader to read the new data from

startNewStream

public void startNewStream(Reader reader, boolean isInternalEntity)
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.

Parameters: reader the non-null reader to read the new data from isInternalEntity true if the reader is produced by resolving an internal entity

stream2reader

protected Reader stream2reader(InputStream stream, StringBuffer charsRead)
Converts a stream to a reader while detecting the encoding.

Parameters: stream the input for the XML data. charsRead buffer where to put characters that have been read

Throws: java.io.IOException if an I/O error occurred

stringReader

public static IXMLReader stringReader(String str)
Creates a new reader using a string as input.

Parameters: str the string containing the XML data

unread

public void unread(char ch)
Pushes the last character read back to the stream.

Parameters: ch the character to push back.

Throws: java.io.IOException if an I/O error occurred