[
Lists Home |
Date Index |
Thread Index
]
I've released a first version of the Tiny API for Markup (TAM) and a
Java 2 Micro Edition parser that supports it. I originally started
writing this as part of a project for supporting a very small subset of
SVG on the Palm, but it acquired a life of its own.
http://simonstl.com/projects/tam/
The API is based loosely on SAX2, though the looseness has increased
over time. TAM both subsets and supersets SAX2's core ContentHandler
interface, and changes from (uri, localName, qName) to (uri, localName,
prefix). SAX2 developers should find it familiar, but direct
compatibility with SAX2 was definitely not a goal.
This parser is _not_ XML 1.0-compliant, primarily because it doesn't
support DOCTYPE processing at all. J2ME is a very constrictive
environment, so I've made some reductions and passed responsibility from
the parser to the application. The TAM API provides an event that
reports the entire DOCTYPE declaration to the application, which is then
responsible for any DOCTYPE processing that may be necessary. TAM will
resolve simple entities if the application registers them with the
parser, but does not handle entities which contain markup - that's a job
for the application.
This parser does support namespaces, and namespace declarations are
reported as attributes. The startPrefix/endPrefix methods of SAX2 are
not supported by TAM.
The current version also does very little character checking of markup,
and while it normalizes line-ends, it doesn't do attribute white-space
normalization. These features (and DOCTYPE processing) will appear in a
later version of the parser which supports more of XML 1.0 and also
Markup Object Events (MOE):
http://moe.sourceforge.net
The TAM API interface and TAMException class are in the public domain,
while the parser is licensed under the Mozilla Public License, version
1.1. While this code is written for J2ME, it also works in J2SE and
should be fine in any Java 2 environment.
-------------
Simon St.Laurent - SSL is my TLA
http://simonstl.com may be my URI
http://monasticxml.org may be my ascetic URI
urn:oid:1.3.6.1.4.1.6320 is another possibility altogether
|