Cytheric XML
Cytheric XML is a static library that implements an event-based
XML parser for Palm OS, inspired by SAX and Expat. This package is released
under the MIT license.
As an open source work, this project is ready for wider distribution. The
documentation will bring you up to speed if you want to extend it. However, as
an XML processor the parser is non-validating and non-conformant. PRC-Tools is
required. Read on for more details, and feel free to
contact me if you have any questions.
Features
- Callbacks: StartElement, ElementCharacters, and EndElement.
- Handles predefined entity references (lt/gt/apos/quot/amp); passes others
through.
- Handles character references in the ASCII range; passes others through.
- Footprint: 12k in code section (including 2k imported from cytheric-util).
No globals.
- Able to parse a single document in separate chunks; well-suited to network
data sources.
- Well-documented; includes PalmUnit unit tests.
- Implements character handling as a state machine for modularity and
clarity.
Limitations
- Accepts ASCII character encoding only.
- Ignores comments and XML declaration.
- Cannot read a DTD, processing instruction, or CDATA section. Results
undefined.
- Does not support namespaces.
- Whitespace handling is minimal; not normalized.
Requirements
You need the tools below to build cytheric-xml. I do not
have access to CodeWarrior; however, if you update the build process for that
environment, I would be happy to incorporate those changes.
| PRC-Tools |
version 2.2; earlier versions may work |
| Palm OS SDK |
version 5; version 4 should work as well. At runtime works on version 3.5 and higher. |
| Cytheric Utilities |
version 0.2 |
| PilRC |
version 2.9 - to build the unit testing UI |
| PalmUnit |
version 0.1.2-cytheric1 - to run the unit tests |
| Doxygen |
I use version 1.2.8 - to rebuild the documentation if you change its contents. |
Download
0.1 is the latest version, released 10 August 2003.
Documentation
| README | includes build procedure |
| Reference manual | design, class usage, and detailed descriptions |
Known Bugs
21 March 2005 - Compilation may fail with the message: "XmlParser.cpp:31: cstdlib: No such file or directory." Change 'cstdlib' to 'stdlib.h'.
Feedback
Let me know if you run into any problems, want to share your experience, or
have some code/ideas to contribute. I'd love to
hear from you, and I hope this helps your
project!
|