[s-xml-cvs] CVS public_html
scaekenberghe
scaekenberghe at common-lisp.net
Tue Jan 31 11:43:39 UTC 2006
Update of /project/s-xml/cvsroot/public_html
In directory common-lisp:/tmp/cvs-serv7157
Modified Files:
S-XML.html index.html
Log Message:
long overdue documentation update
--- /project/s-xml/cvsroot/public_html/S-XML.html 2004/06/30 19:09:43 1.2
+++ /project/s-xml/cvsroot/public_html/S-XML.html 2006/01/31 11:43:38 1.3
@@ -1,7 +1,33 @@
<html><head><title>S-XML</title></head><body><h3>API for package S-XML</h3>
<blockquote>A simple XML parser with an efficient, purely functional, event-based interface as well as a DOM interface</blockquote>
-<p>(<b>echo-xml</b> in out) <i>function</i></p>
-<blockquote>Parse a toplevel XML element from stream in, echoing and pretty printing the result to stream out</blockquote>
+<p><b>*attribute-name-parser*</b> <i>variable</i></p>
+<blockquote>Called to compute interned attribute name from a buffer that will be reused</blockquote>
+<blockquote>Initial value: <tt>#<Function PARSE-ATTRIBUTE-NAME></tt></blockquote>
+<p><b>*attribute-value-parser*</b> <i>variable</i></p>
+<blockquote>Called to compute an element of an attribute list from a buffer that will be reused</blockquote>
+<blockquote>Initial value: <tt>#<Function PARSE-ATTRIBUTE-VALUE></tt></blockquote>
+<p><b>*auto-create-namespace-packages*</b> <i>variable</i></p>
+<blockquote>If t, new packages will be created for namespaces, if needed, named by the prefix</blockquote>
+<blockquote>Initial value: <tt>T</tt></blockquote>
+<p><b>*auto-export-symbols*</b> <i>variable</i></p>
+<blockquote>If t, export newly interned symbols form their packages</blockquote>
+<blockquote>Initial value: <tt>T</tt></blockquote>
+<p><b>*ignore-namespaces*</b> <i>variable</i></p>
+<blockquote>When t, namespaces are ignored like in the old version of S-XML</blockquote>
+<blockquote>Initial value: <tt>NIL</tt></blockquote>
+<p><b>*local-namespace*</b> <i>variable</i></p>
+<blockquote>The local (global default) XML namespace</blockquote>
+<blockquote>Initial value: <tt>#<S-XML::XML-NAMESPACE - local 10D4E317></tt></blockquote>
+<p><b>*namespaces*</b> <i>variable</i></p>
+<blockquote>Ordered list of (prefix . XML-namespace) bindings currently in effect - special variable</blockquote>
+<blockquote>Initial value: <tt>((xml . #<S-XML::XML-NAMESPACE xml - http://www.w3.org/XML/1998/namespace 10D14CCB>) ( . #<S-XML::XML-NAMESPACE - local 10D4E317>))</tt></blockquote>
+<p><b>*require-existing-symbols*</b> <i>variable</i></p>
+<blockquote>If t, each XML identifier must exist as symbol already</blockquote>
+<blockquote>Initial value: <tt>NIL</tt></blockquote>
+<p>(<b>extend-namespaces</b> attributes namespaces) <i>function</i></p>
+<blockquote>Given possible 'xmlns[:prefix]' attributes, extend the namespaces bindings</blockquote>
+<p>(<b>find-namespace</b> uri) <i>function</i></p>
+<blockquote>Find a registered XML namespace identified by uri</blockquote>
<p>(<b>first-xml-element-child</b> xml-element) <i>function</i></p>
<blockquote>Get the first child of an xml-element</blockquote>
<p>(<b>get-entities</b> xml-parser-state) <i>generic-function</i></p>
@@ -16,6 +42,10 @@
<blockquote>Get the new element hook of an XML parser state</blockquote>
<p>(setf (<b>get-new-element-hook</b> xml-parser-state) value) <i>generic-function</i></p>
<blockquote>Set the new element hook of an XML parser state</blockquote>
+<p>(<b>get-package</b> xml-namespace) <i>generic-function</i></p>
+<blockquote>The Common Lisp package where this namespace's symbols are interned</blockquote>
+<p>(<b>get-prefix</b> xml-namespace) <i>generic-function</i></p>
+<blockquote>The preferred prefix assigned to this namespace</blockquote>
<p>(<b>get-seed</b> xml-parser-state) <i>generic-function</i></p>
<blockquote>Get the initial user seed of an XML parser state</blockquote>
<p>(setf (<b>get-seed</b> xml-parser-state) value) <i>generic-function</i></p>
@@ -24,10 +54,16 @@
<blockquote>Get the text hook of an XML parser state</blockquote>
<p>(setf (<b>get-text-hook</b> xml-parser-state) value) <i>generic-function</i></p>
<blockquote>Set the text hook of an XML parser state</blockquote>
+<p>(<b>get-uri</b> xml-namespace) <i>generic-function</i></p>
+<blockquote>The URI used to identify this namespace</blockquote>
<p>(<b>make-xml-element</b> &key name attributes children) <i>function</i></p>
<blockquote>Make and return a new xml-element struct</blockquote>
<p>(<b>new-xml-element</b> name &rest children) <i>function</i></p>
<blockquote>Make a new xml-element with name and children</blockquote>
+<p>(<b>parse-attribute-name</b> string) <i>function</i></p>
+<blockquote>Default parser for the attribute name</blockquote>
+<p>(<b>parse-attribute-value</b> name string) <i>function</i></p>
+<blockquote>Default parser for the attribute value</blockquote>
<p>(<b>parse-xml</b> stream &key (output-type :lxml)) <i>function</i></p>
<blockquote>Parse a character stream as XML and generate a DOM of output-type, defaulting to :lxml</blockquote>
<p>(<b>parse-xml-dom</b> stream output-type) <i>generic-function</i></p>
@@ -36,7 +72,9 @@
<blockquote>Parse a character file as XML and generate a DOM of output-type, defaulting to :lxml</blockquote>
<p>(<b>parse-xml-string</b> string &key (output-type :lxml)) <i>function</i></p>
<blockquote>Parse a string as XML and generate a DOM of output-type, defaulting to :lxml</blockquote>
-<p>(<b>print-string-xml</b> string stream) <i>function</i></p>
+<p>(<b>print-identifier</b> identifier stream &optional as-attribute) <i>function</i></p>
+<blockquote>Print identifier on stream using namespace conventions</blockquote>
+<p>(<b>print-string-xml</b> string stream &key (start 0) end) <i>function</i></p>
<blockquote>Write the characters of string to stream using basic XML conventions</blockquote>
<p>(<b>print-xml</b> dom &key (stream t) pretty (input-type :lxml) (header)) <i>function</i></p>
<blockquote>Generate XML output on a character stream (t by default) from a DOM of input-type (:lxml by default), optionally pretty printing (off by default), or adding a header (none by default)</blockquote>
@@ -44,6 +82,12 @@
<blockquote>Generate XML output on a character stream from a DOM of input-type, optionally pretty printing using level</blockquote>
<p>(<b>print-xml-string</b> dom &key pretty (input-type :lxml)) <i>function</i></p>
<blockquote>Generate XML output to a string from a DOM of input-type (:lxml by default), optionally pretty printing (off by default)</blockquote>
+<p>(<b>register-namespace</b> uri prefix package) <i>function</i></p>
+<blockquote>Register a new or redefine an existing XML namespace defined by uri with prefix and package</blockquote>
+<p>(<b>resolve-identifier</b> identifier namespaces &optional as-attribute) <i>function</i></p>
+<blockquote>Resolve the string identifier in the list of namespace bindings</blockquote>
+<p>(<b>split-identifier</b> identifier) <i>function</i></p>
+<blockquote>Split an identifier 'prefix:name' and return (values prefix name)</blockquote>
<p>(<b>start-parse-xml</b> stream &optional (state (make-instance (quote xml-parser-state)))) <i>function</i></p>
<blockquote>Parse and return a toplevel XML element from stream, using parser state</blockquote>
<p>(<b>xml-element-attribute</b> xml-element key) <i>function</i></p>
@@ -75,4 +119,4 @@
<blockquote>The XML parser state passed along all code making up the parser</blockquote>
<blockquote>Class precedence list: <tt> xml-parser-state standard-object t</tt></blockquote>
<blockquote>Class init args: <tt> :text-hook :finish-element-hook :new-element-hook :seed :entities</tt></blockquote>
-<font size=-1><p>Documentation generated by <a href="http://homepage.mac.com/svc/lispdoc/">lispdoc</a> running on LispWorks</p></font></body></html>
+<font size=-1><p>Documentation generated by <a href="http://homepage.mac.com/svc/lispdoc/">lispdoc</a> running on LispWorks</p></font></body></html>
\ No newline at end of file
--- /project/s-xml/cvsroot/public_html/index.html 2005/02/03 08:36:05 1.10
+++ /project/s-xml/cvsroot/public_html/index.html 2006/01/31 11:43:38 1.11
@@ -27,18 +27,18 @@
</p>
<ul>
<li>It works (handling many common XML usages).</li>
- <li>It is very small (the core is about 400 lines of code, including comments and whitespace).</li>
+ <li>It is very small (the core is about 700 lines of code, including comments and whitespace).</li>
<li>It has a core API that is simple, efficient and pure functional, much like that from <a href="http://pobox.com/~oleg/ftp/Scheme/xml.html">SSAX</a> (see also <a href="http://ssax.sourceforge.net">http://ssax.sourceforge.net</a>).</li>
<li>It supports different DOM models: an <a href="http://pobox.com/~oleg/ftp/Scheme/SXML.html">XSML</a>-based one, an <a href="http://opensource.franz.com/xmlutils/xmlutils-dist/pxml.htm">LXML</a>-based one and a classic xml-element struct based one.</li>
<li>It is reasonably time and space efficient (internally avoiding garbage generatation as much as possible).</li>
+ <li>It does support CDATA.</li>
+ <li>It should support the character sets as your Common Lisp implementation.</li>
+ <li>It does support XML name spaces.</li>
</ul>
<p>
This XML parser implementation has the following limitations:
</p>
<ul>
- <li>It does not support CDATA.</li>
- <li>Only supports simple character sets.</li>
- <li>It does not support name spaces</li>
<li>It does not support any special tags (like processing instructions).</li>
<li>It is not validating, even skips DTD's all together.</li>
</ul>
@@ -273,6 +273,26 @@
<h3>Release History and ChangeLog</h3>
<pre>
+2006-01-19 Sven Van Caekenberghe <svc at mac.com>
+
+ * added a set of patches contributed by David Tolpin dvd at davidashen.net : we're now using char of type
+ Character and #\Null instead of null, read/unread instead of peek/read and some more declarations for
+ more efficiency - added hooks for customizing parsing attribute names and values
+
+2005-11-20 Sven Van Caekenberghe <svc at mac.com>
+
+ * added xml prefix namespace as per REC-xml-names-19990114 (by Rudi Schlatte)
+
+2005-11-06 Sven Van Caekenberghe <svc at mac.com>
+
+ * removed Debian packaging directory (on Luca's request)
+ * added CDATA support (patch contributed by Peter Van Eynde pvaneynd at mailworks.org)
+
+2005-08-30 Sven Van Caekenberghe <svc at mac.com>
+
+ * added Debian packaging directory (contributed by Luca Capello luca at pca.it)
+ * added experimental XML namespace support
+
2005-02-03 Sven Van Caekenberghe <svc at mac.com>
* release 5 (cvs tag RELEASE_5)
@@ -333,7 +353,7 @@
<li><a href="http://common-lisp.net/mailman/listinfo/s-xml-announce">S-XML-ANNOUNCE mailing list info</a></li>
</ul>
- <p>CVS version $Id: index.html,v 1.10 2005/02/03 08:36:05 scaekenberghe Exp $</p>
+ <p>CVS version $Id: index.html,v 1.11 2006/01/31 11:43:38 scaekenberghe Exp $</p>
<div class="footer">
<p>Back to <a href="http://common-lisp.net/">Common-lisp.net</a>.</p>
More information about the S-xml-cvs
mailing list