Cover Pages Logo SEARCH
Advanced Search
ABOUT
Site Map
CP RSS Channel
Contact Us
Sponsoring CP
About Our Sponsors

NEWS
Cover Stories
Articles & Papers
Press Releases

CORE STANDARDS
XML
SGML
Schemas
XSL/XSLT/XPath
XLink
XML Query
CSS
SVG

TECHNOLOGY REPORTS
XML Applications
General Apps
Government Apps
Academic Apps

EVENTS
LIBRARY
Introductions
FAQs
Bibliography
Technology and Society
Semantics
Tech Topics
Software
Related Standards
Historic

Tiny API for Markup, Parser


Date:      Tue, 20 Aug 2002 11:01:09 -0400
From:      Simon St.Laurent <simonstl@simonstl.com>
To:        xml-dev@lists.xml.org
Subject:   Tiny API for Markup, Parser

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. See:

      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

Prepared by Robin Cover for The XML Cover Pages archive.


Globe Image

Document URL: http://xml.coverpages.org/StLaurent-TAM-20020820.html