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.)
163 lines
6.7 KiB
XML
163 lines
6.7 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>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>
|
|
</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>
|