CXML Installation

# Installation of Closure XML

## Download

Download tarballs for both cxml itself and closure-common.

Or get it from git:

git clone git://repo.or.cz/cxml.git (gitweb)
git clone git://repo.or.cz/closure-common.git (gitweb)

## Implementation-specific notes

CXML should be portable to all Common Lisp implementations supported by trivial-gray-streams.

On Lisps without Unicode support, cxml uses integers instead of characters to represent code points internally. By default, however, the parser will recode all data to strings containing characters representing UTF-8 bytes before passing it to user code.

## Compilation

ASDF is used for compilation. The following instructions assume that ASDF has already been loaded.

Prerequisites. CXML needs:

- puri
- trivial-gray-streams
- Babel (on Unicode-capable Lisps only)
- closure-common is maintained together with cxml but available as a separate download (see above for check-out instructions).

Compiling and loading CXML. Register the .asd file, e.g. by symlinking it:

    $ ln -sf `pwd`/cxml/cxml.asd /path/to/your/registry/
    $ ln -sf `pwd`/closure-common/closure-common.asd /path/to/your/registry/

Then compile CXML using:

    * (asdf:operate 'asdf:load-op :cxml)

You can then try the quick-start example.

## Tests

Check out the XML and DOM testsuites:

    $ export CVSROOT=:pserver:anonymous@dev.w3.org:/sources/public
    $ cvs login    # password is "anonymous"
    $ cvs co 2001/XML-Test-Suite/xmlconf
    $ cvs co -D '2005-05-06 23:00' 2001/DOM-Test-Suite
    $ cd 2001/DOM-Test-Suite && ant dom1-dtd dom2-dtd

Omit -D to get the latest version, which may not work with cxml yet. The ant step is necessary to run the DOM tests.

Usage:

    * (xmlconf:run-all-tests "/path/to/2001/XML-Test-Suite/xmlconf/")
    * (domtest:run-all-tests "/path/to/2001/DOM-Test-Suite/")

To compare your results with known output, refer to the files XMLCONF and DOMTEST in the cxml distribution.

fixme: Add an explanation of xml/sax-tests here.

fixme domtest.lisp does not understand the current testsuite driver anymore. To fix this problem, revert the affected files manually after check-out:

    $ cd 2001/XML-Test-Suite/xmlconf/
    xmltest$ patch -p0 -R </path/to/cxml/test/xmlconf-base.diff

The log message for the changes reads "Removed unnecessary xml:base attribute". If I understand correctly, only DOM 3 parsers provide the baseURI attribute necessary for understanding xmlconf.xml now. We don't have that yet.