[e-lang] XML support in E
Kevin Reid
kpreid at mac.com
Tue Jan 12 14:06:28 PST 2010
On Oct 26, 2009, at 13:08, Thomas Leonard wrote:
> Could someone give some simple examples showing how to read and write
> XML using E?
>
> The XMLQuasiParser looks reasonable, but says it is deprecated in
> favour
> of using Terms. I can build Terms manually, but I can't see how to
> turn
> serialised XML into a Term, or a Term into serialised XML.
>
> I found this, but it doesn't say which methods to call:
>
> http://www.erights.org/data/terml/embeddings.html
>
> There's also Term.updoc in the source, which shows how to convert a
> sml
> DOM to a term, but not the other way around. Also, sml doesn't support
> all of XML, e.g.
>
> ? sml`<foo/>`
> # problem: Failed: syntax error: expected '>' but got '/' at 4
There is no E-styled XML library built into E; this is certainly
something which ought to be addressed.
Such a library should of course use immutable trees (vs. e.g. DOM
which is mutable) and have quasiliteral/pattern support for users.
E-on-JavaScript's Updoc-to-HTML component is an example of XML
manipulation in E: it uses the Java DOM libraries (and, when a real E
XML library exists, should be converted to use it).
http://wiki.erights.org/wiki/E-on-JavaScript
There are two different approaches which could be used for an E XML
library: one is to use the Term-tree objects, and merely write an
xml__quasiParser which allows one to use the XML-in-TermL embedding,
as well as facilities for reading/writing XML documents. The other is
to have a distinct object type for XML tree nodes; this has the
advantage that its methods can be optimized for the needs of XML
applications, and its __printOn would show XML rather than TermL.
Parsing and printing could be handled for starters by using Java's
builtin XML facilities; I'm not sure exactly how much could be reused
vs. reimplented.
Questions:
* Would you be interested in working on the project of an XML library
for E?
* If I were to work on it, would you use it and give feedback?
--
Kevin Reid <http://switchb.org/kpreid/>
More information about the e-lang
mailing list