net.rim.device.api.xml.jaxp
Class WBXMLParser

java.lang.Object
  extended by net.rim.device.api.xml.jaxp.WBXMLParser
All Implemented Interfaces:
WBXMLConstants, Locator

public class WBXMLParser
extends Object
implements WBXMLConstants, Locator

Class for parsing of WBXML streams.

The three methods
setTagTable(String[] tagTable),
setAttrStartTable(String[] attrStartTable), and
setAttrValueTable(String[] attrValueTable)
are typically used to set up the tag table, the attribute-name table, and and the attribute-value table for parsing the WBXML streams.

Since:
BlackBerry API 4.0.0

Field Summary
 
Fields inherited from interface net.rim.device.api.xml.WBXMLConstants
CHARSET_ISO_8859_1, CHARSET_UTF_8, END, ENTITY, EXT_0, EXT_1, EXT_2, EXT_I_0, EXT_I_1, EXT_I_2, EXT_T_0, EXT_T_1, EXT_T_2, ISO_8859_1, LITERAL, LITERAL_A, LITERAL_AC, LITERAL_C, OPAQUE, PI, PUBLIC_ID_UNKNOWN, PUBLIC_ID_WML10, PUBLIC_ID_WML11, PUBLIC_ID_WML12, PUBLIC_ID_WML13, STR_I, STR_T, SWITCH_PAGE, UTF_8, WBXML_1_1, WBXML_1_2, WBXML_1_3
 
Constructor Summary
WBXMLParser(InputStream is)
           Parser constructor.
 
Method Summary
 int getCharset()
           Returns the character set, one of CHARSET_ISO_8859_1 or CHARSET_UTF_8.
 int getColumnNumber()
          Return the column number where the current document event ends.
 int getLineNumber()
          Return the line number where the current document event ends.
 Vector getNameSpaceMap()
           Gets the namespace mapping tables.
 String getPublicId()
          The binary XML format contains a representation of the XML document public identifier.
 String getSystemId()
          Return the system identifier for the current document event.
 int getVersion()
           Returns the WBXML version number.
 void parse(DefaultHandler dh)
          Parses the input stream using the specified DefaultHandler.
 void setAttrStartTable(int page, String[] attrStartTable)
           Sets attributes name table for the given page.
 void setAttrStartTable(int page, IntHashtable attrStartTable)
           Sets attribute name table for the given page.
 void setAttrStartTable(String[] attrStartTable)
           Sets the attributes name table.
 void setAttrStartTable(IntHashtable attrStartTables)
           Sets attribute name table.
 void setAttrValueTable(int page, String[] attrValueTable)
           Sets attribute value table for the given page.
 void setAttrValueTable(int page, IntHashtable attrValueTable)
           Sets attribute value table for the given page.
 void setAttrValueTable(String[] attrValueTable)
           Sets attribute value table.
 void setAttrValueTable(IntHashtable attrValueTables)
           Sets attribute value table.
 void setAttributePageFollowTag(boolean follow)
           Sets if the attribute page will follow the tag page switch to change.
 void setTagTable(int page, String[] tagTable)
           Sets tag table for the given page.
 void setTagTable(int page, IntHashtable tagTable)
           Sets tag table for the given page.
 void setTagTable(String[] tagTable)
           Sets the tag table.
 void setTagTable(IntHashtable tagTables)
           Sets tag table.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 



Constructor Detail

WBXMLParser

public WBXMLParser(InputStream is)
            throws IOException,
                   SAXException

Parser constructor.

For additional information, please consult the WBXML spec at this address.

Parameters:
is - the input stream to parse.
Throws:
IOException - Thrown if an IO error occurs.
SAXException - Thrown if the WBXML version is unknown. The known WBXML version is 1, 2, or 3.
Since:
BlackBerry API 4.0.0


Method Detail

setTagTable

public void setTagTable(IntHashtable tagTables)

Sets tag table. The method stores all tag tables for the documents.

Parameters:
tagTables - Lookup tables of XML tags used to decode WBXML.
Since:
BlackBerry API 4.0.0

setAttrStartTable

public void setAttrStartTable(IntHashtable attrStartTables)

Sets attribute name table. The method stores all attribute name tables for the documents.

Parameters:
attrStartTables - Lookup tables of XML attribute names used to decode WBXML.
Since:
BlackBerry API 4.0.0

setAttrValueTable

public void setAttrValueTable(IntHashtable attrValueTables)

Sets attribute value table. The method stores all attribute value tables for the documents.

Parameters:
attrValueTables - Lookup tables of XML attribute values used to decode WBXML.
Since:
BlackBerry API 4.0.0

setTagTable

public void setTagTable(int page,
                        IntHashtable tagTable)

Sets tag table for the given page.

Parameters:
page - The page of the table being set.
tagTable - A lookup table of XML tags used to decode WBXML.
Throws:
NullPointerException - Thrown when tagTable is null.
Since:
BlackBerry API 4.0.0

setAttrStartTable

public void setAttrStartTable(int page,
                              IntHashtable attrStartTable)

Sets attribute name table for the given page.

Parameters:
page - The page of the table being set.
attrStartTable - A lookup table of XML attribute names used to decode WBXML.
Throws:
NullPointerException - Thrown when attrStartTable is null.
Since:
BlackBerry API 4.0.0

setAttrValueTable

public void setAttrValueTable(int page,
                              IntHashtable attrValueTable)

Sets attribute value table for the given page.

Parameters:
page - The page of the table being set.
attrValueTable - A lookup table of XML attribute values used to decode WBXML.
Throws:
NullPointerException - Thrown when attrValueTable is null.
Since:
BlackBerry API 4.0.0

setTagTable

public void setTagTable(int page,
                        String[] tagTable)

Sets tag table for the given page.

Parameters:
page - The page of the table being set.
tagTable - A lookup table of XML tags used to decode WBXML.
Since:
BlackBerry API 4.0.0

setTagTable

public void setTagTable(String[] tagTable)

Sets the tag table.

Parameters:
tagTable - A lookup table of XML tags used to decode WBXML.
Throws:
IllegalArgumentException - if the number of elements in tagTable exceeds 254*59. (The tag code space has at most 254 code page, and each code page contains at most 59 tag names.
Since:
BlackBerry API 5.0.0

setAttrStartTable

public void setAttrStartTable(int page,
                              String[] attrStartTable)

Sets attributes name table for the given page.

Parameters:
page - The page of the table being set.
attrStartTable - A lookup table of XML attribute names used to decode WBXML.
Since:
BlackBerry API 4.0.0

setAttrStartTable

public void setAttrStartTable(String[] attrStartTable)

Sets the attributes name table.

Parameters:
attrStartTable - A lookup table of XML attribute names used to decode WBXML.
Throws:
IllegalArgumentException - if the number of elements in attrStartTable exceeds 254*118. (The attribute name code space has at most 254 code pages, and each code page contains at most 118 attribute names.)
Since:
BlackBerry API 5.0.0

setAttrValueTable

public void setAttrValueTable(int page,
                              String[] attrValueTable)

Sets attribute value table for the given page.

Parameters:
page - The page of the table being set.
attrValueTable - A lookup table of XML attribute values used to decode WBXML.
Since:
BlackBerry API 4.0.0

setAttrValueTable

public void setAttrValueTable(String[] attrValueTable)

Sets attribute value table.

Parameters:
attrValueTable - A lookup table of XML attribute values used to decode WBXML.
Throws:
IllegalArgumentException - if the number of elements in attrValueTable exceeds 254*118. (The attribute value code space has at most 254 code pages, and each code page contains at most 118 attribute values.)
Since:
BlackBerry API 5.0.0

setAttributePageFollowTag

public void setAttributePageFollowTag(boolean follow)

Sets if the attribute page will follow the tag page switch to change.

Parameters:
follow - true if the attribute page will follow the tag page switch to change; false otherwise.
Since:
BlackBerry API 5.0.0

getNameSpaceMap

public Vector getNameSpaceMap()

Gets the namespace mapping tables.

Returns:
the Vector of namespaces map.
Since:
BlackBerry API 5.0.0

parse

public void parse(DefaultHandler dh)
           throws SAXException,
                  IOException

Parses the input stream using the specified DefaultHandler.

Parameters:
dh - A default handler.
Throws:
IOException - Thrown if an IO errors occur.
SAXException - Thrown if the underlying parser throws a SAXException while parsing.
Since:
BlackBerry API 4.0.0

getVersion

public int getVersion()

Returns the WBXML version number.

Returns:
The WBXML version number.
Since:
BlackBerry API 4.0.0

getPublicId

public String getPublicId()
The binary XML format contains a representation of the XML document public identifier. This publicid is used to identify the well-known document type contained within the WBXML entity. Public id can be either an unsigned integer encoded in multi-byte format(mb_u_int32) or 0(zero index).

Specified by:
getPublicId in interface Locator
Returns:
the public identifier
See Also:
Locator.getSystemId()
Since:
BlackBerry API 4.0.0

getSystemId

public String getSystemId()
Description copied from interface: Locator
Return the system identifier for the current document event.

The return value is the system identifier of the document entity or of the external parsed entity in which the markup triggering the event appears.

If the system identifier is a URL, the parser must resolve it fully before passing it to the application. For example, a file name must always be provided as a file:... URL, and other kinds of relative URI are also resolved against their bases.

Specified by:
getSystemId in interface Locator
Returns:
A string containing the system identifier, or null if none is available.
See Also:
Locator.getPublicId()
Since:
BlackBerry API 4.0.0

getLineNumber

public int getLineNumber()
Description copied from interface: Locator
Return the line number where the current document event ends. Lines are delimited by line ends, which are defined in the XML specification.

Warning: The return value from the method is intended only as an approximation for the sake of diagnostics; it is not intended to provide sufficient information to edit the character content of the original XML document. In some cases, these "line" numbers match what would be displayed as columns, and in others they may not match the source text due to internal entity expansion.

The return value is an approximation of the line number in the document entity or external parsed entity where the markup triggering the event appears.

If possible, the SAX driver should provide the line position of the first character after the text associated with the document event. The first line is line 1.

Specified by:
getLineNumber in interface Locator
Returns:
The line number, or -1 if none is available.
See Also:
Locator.getColumnNumber()
Since:
BlackBerry API 4.0.0

getColumnNumber

public int getColumnNumber()
Description copied from interface: Locator
Return the column number where the current document event ends. This is one-based number of Java char values since the last line end.

Warning: The return value from the method is intended only as an approximation for the sake of diagnostics; it is not intended to provide sufficient information to edit the character content of the original XML document. For example, when lines contain combining character sequences, wide characters, surrogate pairs, or bi-directional text, the value may not correspond to the column in a text editor's display.

The return value is an approximation of the column number in the document entity or external parsed entity where the markup triggering the event appears.

If possible, the SAX driver should provide the line position of the first character after the text associated with the document event. The first column in each line is column 1.

Specified by:
getColumnNumber in interface Locator
Returns:
The column number, or -1 if none is available.
See Also:
Locator.getLineNumber()
Since:
BlackBerry API 4.0.0

getCharset

public int getCharset()

Returns the character set, one of CHARSET_ISO_8859_1 or CHARSET_UTF_8. This is the WBXML equivalent of the XML document format encoding attribute. A value of zero indicates an unknown document encoding.

Returns:
The character set.
Since:
BlackBerry API 4.0.0





Copyright 1999-2010 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Copyright 1993-2003 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved.
Copyright 2002-2003 Nokia Corporation All Rights Reserved.
Java is a trademark of Sun Microsystems, Inc.