org.apache.batik.xml
Class XMLScanner

java.lang.Object
  extended by org.apache.batik.xml.XMLScanner
All Implemented Interfaces:
Localizable

public class XMLScanner
extends Object
implements Localizable

This class represents a scanner for XML documents.


Field Summary
static int ATTLIST_CONTEXT
          The ATTLIST context.
protected  char attrDelimiter
          The last attribute delimiter encountered.
static int ATTRIBUTE_VALUE_CONTEXT
          The attribute value context.
protected  char[] buffer
          The recording buffer.
protected static String BUNDLE_CLASSNAME
          The default resource bundle base name.
static int CDATA_SECTION_CONTEXT
          The CDATA section context.
protected  boolean cdataEndRead
          A CDATA section end is the next token
static int CONTENT_CONTEXT
          The content context.
protected  int context
          The current scanning context.
protected  int current
          The current char.
protected  int depth
          The depth in the xml tree.
static int DOCTYPE_CONTEXT
          The doctype context.
static int DOCUMENT_START_CONTEXT
          The document start context.
static int DTD_DECLARATIONS_CONTEXT
          The DTD declarations context.
static int ELEMENT_DECLARATION_CONTEXT
          The element declaration context.
protected  int end
          The end offset of the last lexical unit.
static int END_TAG_CONTEXT
          The end tag context.
static int ENTITY_CONTEXT
          The entity context.
static int ENTITY_VALUE_CONTEXT
          The entity value context.
static int ENUMERATION_CONTEXT
          The enumeration context.
protected  boolean inDTD
          The scanner is in the internal DTD.
protected  LocalizableSupport localizableSupport
          The localizable support.
static int NOTATION_CONTEXT
          The notation context.
static int NOTATION_TYPE_CONTEXT
          The notation type context.
static int PI_CONTEXT
          The processing instruction context.
protected  boolean piEndRead
          A PI end has been previously read.
protected  int position
          The current position in the buffer.
protected  NormalizingReader reader
          The reader.
protected  int start
          The start offset of the last lexical unit.
static int START_TAG_CONTEXT
          The start tag context.
static int TOP_LEVEL_CONTEXT
          The top level context.
protected  int type
          The type of the current lexical unit.
static int XML_DECL_CONTEXT
          The XML declaration context.
 
Constructor Summary
XMLScanner(InputStream is, String enc)
          Creates a new XML scanner.
XMLScanner(Reader r)
          Creates a new XML scanner.
XMLScanner(String s)
          Creates a new XML scanner.
 
Method Summary
 void clearBuffer()
          Clears the buffer.
protected  XMLException createXMLException(String message)
          Returns an XMLException initialized with the given message key.
 String formatMessage(String key, Object[] args)
          Implements Localizable.formatMessage(String,Object[]).
 char[] getBuffer()
          Returns the buffer used to store the chars.
 int getColumn()
          Returns the current column.
 int getContext()
          Returns the current context.
 int getDepth()
          Returns the current depth in the XML tree.
 int getEnd()
          Returns the end offset of the last lexical unit.
 int getEndOffset()
          Returns the end offset of the current lexical unit.
 int getLine()
          Returns the current line.
 Locale getLocale()
          Implements Localizable.getLocale().
 int getStart()
          Returns the start offset of the last lexical unit.
 int getStartOffset()
          Returns the start offset of the current lexical unit.
 char getStringDelimiter()
          Returns the last encountered string delimiter.
 int getType()
          The current lexical unit type like defined in LexicalUnits.
 int next()
          Advances to the next lexical unit.
 int next(int ctx)
          Advances to the next lexical unit.
protected  int nextChar()
          Sets the value of the current char to the next character or -1 if the end of stream has been reached.
protected  int nextInAttList()
          Returns the next lexical unit in the context of an attribute list.
protected  int nextInAttributeValue()
          Returns the next lexical unit in the context of an attribute value.
protected  int nextInCDATASection()
          Returns the next lexical unit in the context of a CDATA section.
protected  int nextInContent()
          Returns the next lexical unit in the context of an element content.
protected  int nextInDoctype()
          Returns the next lexical unit in the context of a doctype.
protected  int nextInDocumentStart()
          Reads the first token in the stream.
protected  int nextInDTDDeclarations()
          Returns the next lexical unit in the context dtd declarations.
protected  int nextInElementDeclaration()
          Returns the next lexical unit in the context of a element declaration.
protected  int nextInEndTag()
          Returns the next lexical unit in the context of a end tag.
protected  int nextInEntity()
          Returns the next lexical unit in the context of an entity.
protected  int nextInEntityValue()
          Returns the next lexical unit in the context of an entity value.
protected  int nextInEnumeration()
          Returns the next lexical unit in the context of an enumeration.
protected  int nextInNotation()
          Returns the next lexical unit in the context of a notation.
protected  int nextInNotationType()
          Returns the next lexical unit in the context of a notation type.
protected  int nextInPI()
          Returns the next lexical unit in the context of a processing instruction.
protected  int nextInStartTag()
          Returns the next lexical unit in the context of a start tag.
protected  int nextInTopLevel()
          Advances to the next lexical unit in the top level context.
protected  int nextInXMLDecl()
          Returns the next lexical unit in the context of an XML declaration.
protected  int readComment()
          Reads a comment.
protected  int readIdentifier(String s, int type, int ntype)
          Reads the given identifier.
protected  int readName(int type)
          Reads a name.
protected  int readNmtoken()
          Reads a Nmtoken.
protected  int readPEReference()
          Reads a parameter entity reference.
protected  int readPIStart()
          Reads a processing instruction start.
protected  int readReference()
          Reads an entity or character reference.
protected  int readString()
          Reads a simple string, like the ones used for version, encoding, public/system identifiers...
 void setContext(int c)
          Sets the current context.
 void setDepth(int i)
          Sets the current depth in the XML tree.
 void setLocale(Locale l)
          Implements Localizable.setLocale(Locale).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DOCUMENT_START_CONTEXT

public static final int DOCUMENT_START_CONTEXT
The document start context.

See Also:
Constant Field Values

TOP_LEVEL_CONTEXT

public static final int TOP_LEVEL_CONTEXT
The top level context.

See Also:
Constant Field Values

PI_CONTEXT

public static final int PI_CONTEXT
The processing instruction context.

See Also:
Constant Field Values

XML_DECL_CONTEXT

public static final int XML_DECL_CONTEXT
The XML declaration context.

See Also:
Constant Field Values

DOCTYPE_CONTEXT

public static final int DOCTYPE_CONTEXT
The doctype context.

See Also:
Constant Field Values

START_TAG_CONTEXT

public static final int START_TAG_CONTEXT
The start tag context.

See Also:
Constant Field Values

CONTENT_CONTEXT

public static final int CONTENT_CONTEXT
The content context.

See Also:
Constant Field Values

DTD_DECLARATIONS_CONTEXT

public static final int DTD_DECLARATIONS_CONTEXT
The DTD declarations context.

See Also:
Constant Field Values

CDATA_SECTION_CONTEXT

public static final int CDATA_SECTION_CONTEXT
The CDATA section context.

See Also:
Constant Field Values

END_TAG_CONTEXT

public static final int END_TAG_CONTEXT
The end tag context.

See Also:
Constant Field Values

ATTRIBUTE_VALUE_CONTEXT

public static final int ATTRIBUTE_VALUE_CONTEXT
The attribute value context.

See Also:
Constant Field Values

ATTLIST_CONTEXT

public static final int ATTLIST_CONTEXT
The ATTLIST context.

See Also:
Constant Field Values

ELEMENT_DECLARATION_CONTEXT

public static final int ELEMENT_DECLARATION_CONTEXT
The element declaration context.

See Also:
Constant Field Values

ENTITY_CONTEXT

public static final int ENTITY_CONTEXT
The entity context.

See Also:
Constant Field Values

NOTATION_CONTEXT

public static final int NOTATION_CONTEXT
The notation context.

See Also:
Constant Field Values

NOTATION_TYPE_CONTEXT

public static final int NOTATION_TYPE_CONTEXT
The notation type context.

See Also:
Constant Field Values

ENUMERATION_CONTEXT

public static final int ENUMERATION_CONTEXT
The enumeration context.

See Also:
Constant Field Values

ENTITY_VALUE_CONTEXT

public static final int ENTITY_VALUE_CONTEXT
The entity value context.

See Also:
Constant Field Values

BUNDLE_CLASSNAME

protected static final String BUNDLE_CLASSNAME
The default resource bundle base name.

See Also:
Constant Field Values

localizableSupport

protected LocalizableSupport localizableSupport
The localizable support.


reader

protected NormalizingReader reader
The reader.


current

protected int current
The current char.


type

protected int type
The type of the current lexical unit.


buffer

protected char[] buffer
The recording buffer.


position

protected int position
The current position in the buffer.


start

protected int start
The start offset of the last lexical unit.


end

protected int end
The end offset of the last lexical unit.


context

protected int context
The current scanning context.


depth

protected int depth
The depth in the xml tree.


piEndRead

protected boolean piEndRead
A PI end has been previously read.


inDTD

protected boolean inDTD
The scanner is in the internal DTD.


attrDelimiter

protected char attrDelimiter
The last attribute delimiter encountered.


cdataEndRead

protected boolean cdataEndRead
A CDATA section end is the next token

Constructor Detail

XMLScanner

public XMLScanner(Reader r)
           throws XMLException
Creates a new XML scanner.

Parameters:
r - The reader to scan.
Throws:
XMLException

XMLScanner

public XMLScanner(InputStream is,
                  String enc)
           throws XMLException
Creates a new XML scanner.

Parameters:
is - The input stream to scan.
enc - The character encoding to use.
Throws:
XMLException

XMLScanner

public XMLScanner(String s)
           throws XMLException
Creates a new XML scanner.

Parameters:
s - The string to parse.
Throws:
XMLException
Method Detail

setLocale

public void setLocale(Locale l)
Implements Localizable.setLocale(Locale).

Specified by:
setLocale in interface Localizable
Parameters:
l - The locale to set.

getLocale

public Locale getLocale()
Implements Localizable.getLocale().

Specified by:
getLocale in interface Localizable

formatMessage

public String formatMessage(String key,
                            Object[] args)
                     throws MissingResourceException
Implements Localizable.formatMessage(String,Object[]).

Specified by:
formatMessage in interface Localizable
Parameters:
key - The key used to retreive the message from the resource bundle.
args - The objects that compose the message.
Throws:
MissingResourceException - if the key is not in the bundle.

setDepth

public void setDepth(int i)
Sets the current depth in the XML tree.


getDepth

public int getDepth()
Returns the current depth in the XML tree.


setContext

public void setContext(int c)
Sets the current context.


getContext

public int getContext()
Returns the current context.


getType

public int getType()
The current lexical unit type like defined in LexicalUnits.


getLine

public int getLine()
Returns the current line.


getColumn

public int getColumn()
Returns the current column.


getBuffer

public char[] getBuffer()
Returns the buffer used to store the chars.


getStart

public int getStart()
Returns the start offset of the last lexical unit.


getEnd

public int getEnd()
Returns the end offset of the last lexical unit.


getStringDelimiter

public char getStringDelimiter()
Returns the last encountered string delimiter.


getStartOffset

public int getStartOffset()
Returns the start offset of the current lexical unit.


getEndOffset

public int getEndOffset()
Returns the end offset of the current lexical unit.


clearBuffer

public void clearBuffer()
Clears the buffer.


next

public int next()
         throws XMLException
Advances to the next lexical unit.

Returns:
The type of the lexical unit like defined in LexicalUnits.
Throws:
XMLException

next

public int next(int ctx)
         throws XMLException
Advances to the next lexical unit.

Parameters:
ctx - The context to use for scanning.
Returns:
The type of the lexical unit like defined in LexicalUnits.
Throws:
XMLException

nextInDocumentStart

protected int nextInDocumentStart()
                           throws IOException,
                                  XMLException
Reads the first token in the stream.

Throws:
IOException
XMLException

nextInTopLevel

protected int nextInTopLevel()
                      throws IOException,
                             XMLException
Advances to the next lexical unit in the top level context.

Returns:
The type of the lexical unit like defined in LexicalUnits.
Throws:
IOException
XMLException

nextInPI

protected int nextInPI()
                throws IOException,
                       XMLException
Returns the next lexical unit in the context of a processing instruction.

Throws:
IOException
XMLException

nextInStartTag

protected int nextInStartTag()
                      throws IOException,
                             XMLException
Returns the next lexical unit in the context of a start tag.

Throws:
IOException
XMLException

nextInAttributeValue

protected int nextInAttributeValue()
                            throws IOException,
                                   XMLException
Returns the next lexical unit in the context of an attribute value.

Throws:
IOException
XMLException

nextInContent

protected int nextInContent()
                     throws IOException,
                            XMLException
Returns the next lexical unit in the context of an element content.

Throws:
IOException
XMLException

nextInEndTag

protected int nextInEndTag()
                    throws IOException,
                           XMLException
Returns the next lexical unit in the context of a end tag.

Throws:
IOException
XMLException

nextInCDATASection

protected int nextInCDATASection()
                          throws IOException,
                                 XMLException
Returns the next lexical unit in the context of a CDATA section.

Throws:
IOException
XMLException

nextInXMLDecl

protected int nextInXMLDecl()
                     throws IOException,
                            XMLException
Returns the next lexical unit in the context of an XML declaration.

Throws:
IOException
XMLException

nextInDoctype

protected int nextInDoctype()
                     throws IOException,
                            XMLException
Returns the next lexical unit in the context of a doctype.

Throws:
IOException
XMLException

nextInDTDDeclarations

protected int nextInDTDDeclarations()
                             throws IOException,
                                    XMLException
Returns the next lexical unit in the context dtd declarations.

Throws:
IOException
XMLException

readString

protected int readString()
                  throws IOException,
                         XMLException
Reads a simple string, like the ones used for version, encoding, public/system identifiers... The current character must be the string delimiter.

Returns:
type.
Throws:
IOException
XMLException

readComment

protected int readComment()
                   throws IOException,
                          XMLException
Reads a comment. '<!-' must have been read.

Throws:
IOException
XMLException

readIdentifier

protected int readIdentifier(String s,
                             int type,
                             int ntype)
                      throws IOException,
                             XMLException
Reads the given identifier.

Parameters:
s - The portion of the identifier to read.
type - The lexical unit type of the identifier.
ntype - The lexical unit type to set if the identifier do not match or -1 if an error must be signaled.
Throws:
IOException
XMLException

readName

protected int readName(int type)
                throws IOException,
                       XMLException
Reads a name. The current character must be the first character.

Parameters:
type - The lexical unit type to set.
Returns:
type.
Throws:
IOException
XMLException

readPIStart

protected int readPIStart()
                   throws IOException,
                          XMLException
Reads a processing instruction start.

Returns:
type.
Throws:
IOException
XMLException

nextInElementDeclaration

protected int nextInElementDeclaration()
                                throws IOException,
                                       XMLException
Returns the next lexical unit in the context of a element declaration.

Throws:
IOException
XMLException

nextInAttList

protected int nextInAttList()
                     throws IOException,
                            XMLException
Returns the next lexical unit in the context of an attribute list.

Throws:
IOException
XMLException

nextInNotation

protected int nextInNotation()
                      throws IOException,
                             XMLException
Returns the next lexical unit in the context of a notation.

Throws:
IOException
XMLException

nextInEntity

protected int nextInEntity()
                    throws IOException,
                           XMLException
Returns the next lexical unit in the context of an entity.

Throws:
IOException
XMLException

nextInEntityValue

protected int nextInEntityValue()
                         throws IOException,
                                XMLException
Returns the next lexical unit in the context of an entity value.

Throws:
IOException
XMLException

nextInNotationType

protected int nextInNotationType()
                          throws IOException,
                                 XMLException
Returns the next lexical unit in the context of a notation type.

Throws:
IOException
XMLException

nextInEnumeration

protected int nextInEnumeration()
                         throws IOException,
                                XMLException
Returns the next lexical unit in the context of an enumeration.

Throws:
IOException
XMLException

readReference

protected int readReference()
                     throws IOException,
                            XMLException
Reads an entity or character reference. The current character must be '&'.

Returns:
type.
Throws:
IOException
XMLException

readPEReference

protected int readPEReference()
                       throws IOException,
                              XMLException
Reads a parameter entity reference. The current character must be '%'.

Returns:
type.
Throws:
IOException
XMLException

readNmtoken

protected int readNmtoken()
                   throws IOException,
                          XMLException
Reads a Nmtoken. The current character must be the first character.

Returns:
LexicalUnits.NMTOKEN.
Throws:
IOException
XMLException

nextChar

protected int nextChar()
                throws IOException
Sets the value of the current char to the next character or -1 if the end of stream has been reached.

Throws:
IOException

createXMLException

protected XMLException createXMLException(String message)
Returns an XMLException initialized with the given message key.



Copyright © 2008 Apache Software Foundation. All Rights Reserved.