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@mac.com + + * added a set of patches contributed by David Tolpin dvd@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@mac.com + + * added xml prefix namespace as per REC-xml-names-19990114 (by Rudi Schlatte) + +2005-11-06 Sven Van Caekenberghe svc@mac.com + + * removed Debian packaging directory (on Luca's request) + * added CDATA support (patch contributed by Peter Van Eynde pvaneynd@mailworks.org) + +2005-08-30 Sven Van Caekenberghe svc@mac.com + + * added Debian packaging directory (contributed by Luca Capello luca@pca.it) + * added experimental XML namespace support + 2005-02-03 Sven Van Caekenberghe <svc@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>