175 lines
7.2 KiB
XML
175 lines
7.2 KiB
XML
<documentation title="Closure XML">
|
|
<h1>Closure XML Parser</h1>
|
|
|
|
<p>An XML parser written in Common Lisp.</p>
|
|
|
|
<p>
|
|
Closure XML was written by <a
|
|
href="http://www.stud.uni-karlsruhe.de/~unk6/">Gilbert Baumann</a>
|
|
(unk6 at rz.uni-karlsruhe.de) as part of the Closure web
|
|
browser.<br/>
|
|
Contributions to the parser by
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
Henrik Motakef (hmot at henrik-motakef.de)<br/>
|
|
(SAX layer; namespace support)
|
|
</li>
|
|
<li>
|
|
<a href="mailto:david@lichteblau.com">David Lichteblau</a> for <a
|
|
href="http://www.knowledgetools.de">knowledgeTools</a>
|
|
(conversion into an independent package; DOM bug fixing; validation)
|
|
and <a href="http://www.headcraft.de/">headcraft</a>
|
|
(most september/october 2004 changes) and privately (changes
|
|
since then).
|
|
</li>
|
|
</ul>
|
|
|
|
<p>
|
|
CXML implements a <a
|
|
href="http://www.w3.org/TR/REC-xml-names/">namespace-aware</a>,
|
|
validating <a
|
|
href="http://www.w3.org/TR/2000/REC-xml-20001006">XML 1.0</a>
|
|
parser as well as the <a
|
|
href="http://www.w3.org/TR/DOM-Level-2-Core/">DOM Level 2 Core</a>
|
|
interfaces. Two parser interfaces are offered, one SAX-like, the
|
|
other similar to StAX.
|
|
</p>
|
|
|
|
<p>
|
|
CXML is licensed under Lisp-LGPL.
|
|
</p>
|
|
|
|
<p>
|
|
Send bug reports to <a
|
|
href="mailto:cxml-devel@common-lisp.net">cxml-devel@common-lisp.net</a>
|
|
(<a
|
|
href="http://common-lisp.net/cgi-bin/mailman/listinfo/cxml-devel">list
|
|
information</a>).
|
|
</p>
|
|
|
|
<h3>See also</h3>
|
|
<p>
|
|
Relax NG validation is available as a separate
|
|
project: <a href="http://www.lichteblau.com/cxml-rng/">cxml-rng</a>.
|
|
</p>
|
|
|
|
|
|
<a name="changes"/>
|
|
<h3>Recent Changes</h3>
|
|
<p class="nomargin"><tt>rel-2007-mm-dd</tt></p>
|
|
<ul class="nomargin">
|
|
<li>
|
|
Fixed build on non-Unicode lisps. Fixed parsing on
|
|
non-Unicode lisps. Fixed Unicode detection on OpenMCL.
|
|
</li>
|
|
<li>Serialization no longer defaults to canonical form.</li>
|
|
<li>Fixed octet array argument to make-source.</li>
|
|
<li>
|
|
XMLS compatibility is not <i>bug-for-bug</i>-compatible with
|
|
XMLS any more. There is now a mode using pairs of local name
|
|
and namespace URI, and a second mode using qualified names
|
|
only. The old behaviour using pairs of prefix and local names
|
|
was removed. (Thanks to Douglas Crosher.)
|
|
</li>
|
|
<li>
|
|
SCL support (thanks to Douglas Crosher). Includes support for
|
|
implementations where URIs are valid namestrings, and a mode
|
|
where normal streams are used instead of xstreams and ystreams
|
|
(albeit both SCL-specific at this point).
|
|
</li>
|
|
<li>new convenience serialization function cxml:doctype. Various
|
|
DTD serialization fixes.</li>
|
|
</ul>
|
|
<p class="nomargin"><tt>rel-2007-05-26</tt></p>
|
|
<ul class="nomargin">
|
|
<li><b>cxml.asd has been split up into <tt>cxml.asd</tt> for the
|
|
XML parser and <tt>runes.asd</tt> for the runes package, in
|
|
preparation of a complete split of the two systems. Future CXML
|
|
releases will use separate tarballs for <tt>runes</tt>
|
|
and <tt>cxml</tt>.</b></li>
|
|
<li>xml:base support (SAX and Klacks only, not yet used in DOM).
|
|
See documentation <a href="sax.html#saxparser">here</a> and <a
|
|
href="klacks.html#locator">here</a>.</li>
|
|
<li>New class <tt>broadcast-handler</tt> as a generalization
|
|
of the older <tt>sax-proxy</tt>.</li>
|
|
<li>New class <tt>tapping-source</tt>, a klacks source that
|
|
relays events from an upstream klacks source unchanged, while also
|
|
emitting them as SAX events to a user-specified handler at the
|
|
same time.</li>
|
|
<li>Changed attributes to carry an lname even when occurring
|
|
without a namespace. Added new functions attribute*,
|
|
unparse-attribute, and macro with-element*, with-namespace* to
|
|
the SAX generation wrapper API.</li>
|
|
<li>Klacks improvements: Incompatibly changed
|
|
klacks:find-element and find-event to consider the current event
|
|
as a result. Added klacks-error, klacks:expect, klacks:skip,
|
|
klacks:expecting-element. Fixed serialize-event to generate
|
|
start-prefix-mapping and end-prefix-mapping events. New function
|
|
map-current-namespace-declarations.</li>
|
|
<li>fixed build with common-lisp-controller</li>
|
|
</ul>
|
|
<p class="nomargin"><tt>rel-2007-02-18</tt></p>
|
|
<ul class="nomargin">
|
|
<li>New StAX-like parser interface.</li>
|
|
<li>Serialization fixes (thanks to Nathan Bird, Donavon Keithley).</li>
|
|
<li>characters.lisp cleanup (thanks to Nathan Bird).</li>
|
|
<li>Namespace normalizer bugfixes.</li>
|
|
<li>Minor changes: clone-node on document as an extension. DOM
|
|
class hierarchy reworked. New function parse-empty-document.
|
|
Fixed the DOM serializer to not throw away local names.
|
|
Fixed a long-standing bug in the parser for documents without a
|
|
doctype. ANSI conformance fixes.</li>
|
|
</ul>
|
|
<p class="nomargin"><tt>rel-2006-01-05</tt></p>
|
|
<ul class="nomargin">
|
|
<li>Implemented DOM 2 Core.</li>
|
|
<li>Error handling overhaul.</li>
|
|
<li>UTF-8 string support in DOM on Lisps without Unicode characters.</li>
|
|
<li>Sink API has been changed.</li>
|
|
<li>Support internal subset serialization.</li>
|
|
<li>Whitespace normalizer.</li>
|
|
<li>Gilbert Baumann has clarified the license as Lisp-LGPL.</li>
|
|
<li>Use trivial-gray-streams.</li>
|
|
</ul>
|
|
<p class="nomargin"><tt>rel-2005-06-25</tt></p>
|
|
<ul class="nomargin">
|
|
<li>Port to OpenMCL (thanks to Rudi Schlatte).</li>
|
|
<li>Port to LispWorks (thanks to Edi Weitz).</li>
|
|
<li>Minor new features: <tt>include-default-values</tt> argument to
|
|
<tt>make-xmls-builder</tt>; <tt>handler</tt> argument
|
|
to <tt>parse-dtd-stream</tt>; SAX proxy class</li>
|
|
<li>Various bugfixes.</li>
|
|
</ul>
|
|
<p class="nomargin"><tt>patch-357</tt> (2004-10-10)</p>
|
|
<ul class="nomargin">
|
|
<li>Auto-detect unicode support for better asdf-installability.</li>
|
|
<li>Use the puri library for Sys-ID handling.</li>
|
|
<li>Semi-automatic caching of DTD instances.</li>
|
|
<li>Support user-defined entity resolvers.</li>
|
|
<li>Support for Oasis XML Catalogs.</li>
|
|
<li>xhtmlgen version of Franz htmlgen.</li>
|
|
<li>Fixes for SBCL's unicode support.</li>
|
|
</ul>
|
|
<p class="nomargin"><tt>patch-306</tt> (2004-09-03)</p>
|
|
<ul class="nomargin">
|
|
<li>Event-based serialization which does not require DOM documents</li>
|
|
<li>XMLS compatiblity</li>
|
|
<li>minor bugfixes (thread safety; should work on clisp again)</li>
|
|
</ul>
|
|
<p class="nomargin"><tt>patch-279</tt> (2004-05-11)</p>
|
|
<ul class="nomargin">
|
|
<li>Validation</li>
|
|
<li>bugfixes; XHTML DTD parses again; corrected SAX entity handling</li>
|
|
</ul>
|
|
<p class="nomargin"><tt>patch-204</tt></p>
|
|
<ul class="nomargin">
|
|
<li>Renamed package <tt>XML</tt> to <tt>CXML</tt>.</li>
|
|
<li>The unparse functions support non-canonical output now.</li>
|
|
</ul>
|
|
<p class="nomargin"><tt>patch-191</tt> (2004-03-18)</p>
|
|
<ul class="nomargin">
|
|
<li>Initial release.</li>
|
|
</ul>
|
|
</documentation>
|