_SSAX_/_SXML_ Library
=====================

These is Oleg Kiselyov's SSAX/SXML library.  For lots proper documentation
and papers, refer to

http://ssax.sourceforge.net/

SSAX
====

To use SSAX from your program, do

  (require (lib "ssax.ss" "ssax"))

This file defines the following procedures from the SSAX library:

> xml-token?
> xml-token-kind
> xml-token-head
> make-empty-attlist
> attlist-add
> attlist-null?
> attlist-remove-top
> attlist->alist
> attlist-fold
> ssax:uri-string->symbol
> ssax:skip-internal-dtd
> ssax:read-pi-body-as-string
> ssax:reverse-collect-str-drop-ws
> ssax:read-markup-token
> ssax:read-cdata-body
> ssax:read-char-ref
> ssax:read-attributes
> ssax:complete-start-tag
> ssax:read-external-id
> ssax:read-char-data
> ssax:make-parser
> ssax:make-pi-parser
> ssax:make-elem-parser
> ssax:xml->sxml

Furthermore, it defines:

> ssax:warn-parameter - Parameter for the procedure to display
  warnings.  It must accept a port, a warning message, and any number
  of additional arguments.

For catching parse errors, you should

  (require (lib "input-parse.ss" "ssax"))

which defines:

> (define-struct (exn:ssax exn) (port stuff))

for parser errors raised by SSAX via RAISE.  PORT contains the port on
which the error happens, STUFF is a list of additional, but random
information.

SXML
====

The collection also includes the SXML library

  (require (lib "sxml-tree-trans.ss" "ssax"))

defines:

> SRV:send-reply
> post-order
> pre-post-order
> replace-range

  (require (lib "sxml-tree-trans.ss" "ssax"))

defines:

> SXML->HTML
> enattr
> entag
> string->goodHTML
