sogo/SOPE/NGCards/versitCardsSaxDriver
Wolfgang Sourdeau a24ba75298 Monotone-Parent: 075c67e05325ad90a16ac0da1000c41d2ff882fb
Monotone-Revision: 45bea3e2e145934a34aeefc02e3b87dc35017013

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-05-03T21:56:25
Monotone-Branch: ca.inverse.sogo
2007-05-03 21:56:25 +00:00
..
versitCardsSaxDriver.xcodeproj Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
AUTHORS Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
bundle-info.plist Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
ChangeLog Monotone-Parent: 075c67e05325ad90a16ac0da1000c41d2ff882fb 2007-05-03 21:56:25 +00:00
common.h Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
COPYING Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
COPYRIGHT Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
fhs.make Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
GNUmakefile Monotone-Parent: 6b671acbd7feafaefa796eb983a298d042a67053 2007-02-09 16:30:48 +00:00
GNUmakefile.postamble Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
GNUmakefile.preamble Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
README Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
Version Monotone-Parent: 74afdab346651f172224a31826f95f99b448c10d 2007-02-21 21:10:01 +00:00
versitCardsSaxDriver-Info.plist Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
VSCardSaxDriver.h Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
VSCardSaxDriver.m Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
VSSaxDriver.h Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
VSSaxDriver.m Monotone-Parent: 075c67e05325ad90a16ac0da1000c41d2ff882fb 2007-05-03 21:56:25 +00:00
VSStringFormatter.h Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00
VSStringFormatter.m Monotone-Parent: 4962ab3aba4ec12e6e80cec90be3bb7824bb7b56 2007-01-31 17:11:29 +00:00

Overview
========

Two SaxObjC drivers for iCalendar and vCard files, initially written by
Max Berger <max@berger.name>.

VSiCalSaxDriver basically maps iCal 2.0 components, properties and parameters
to the XML events according to the xCal 02 draft (iCal 3.0).

Having a SAX driver for iCal might seem strange and a bit inefficient at
first look, but the time saved for the application-level developer is
significant, since he only needs to learn (or usually already knows) the
SAX or DOM APIs and any XML API based on them (like XPATH, XQUERY).

The VSiCalSaxDriver is aimed to be a replacement for the older (but better
tested as of now) iCalSaxDriver. However, the iCalSaxDriver depends on the
abandoned and hardly maintainable libical, which itself is an additional
dependency to the OGo project and thus a welcome candidate for replacement.

The VSSaxDriver attempts to follow RFC2445 closely, however the parser is
written to be robust when it comes to parsing real life content. Currently,
unescaping is done for more characters then it MUST according to RFC2445, but
this is probably not a bad idea - wrongly escaped characters will still be
parsed according to the original intent. Also, the VSSaxDriver supports Unix
style terminated lines/folding.

ToDo
====

- improve error handling (SaxExceptions !)
- make the driver fully xCal compliant


Defaults
========

Name                            Type        Description
------------------------------------------------------------------------------
VSSaxDriverDebugEnabled         BOOL        YES -> log some debug information
                                                   via NSLog


Examples
========

To "convert" an iCalendar to xCal (the test programs print out some XML):

  saxxml -XMLReader VSiCalSaxDriver test1.ics
  domxml -XMLReader VSiCalSaxDriver -xml  test1.ics

To "convert" an iCalendar to PYX:

  domxml -XMLReader VSiCalSaxDriver -pyx  test1.ics