Installation of Closure XML


Download tarballs for both cxml itself and closure-common.

Or get it from git:

git clone git:// (gitweb)
git clone 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.


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

Prerequisites. CXML needs:

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.


Check out the XML and DOM testsuites:

$ export
$ 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.


* (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.