[
Lists Home |
Date Index |
Thread Index
]
- From: Steven Ball <steve@cs.anu.edu.au>
- To: xml-dev@ic.ac.uk
- Date: Mon, 23 Jun 1997 09:56:35 +1000
> (I am not a Java person so I don't know the syntax for doing the following
> in Java...)
I'm no Java-phile either ;-)
> The idea is to
>
> 1) have a textual representation of an XML document as a Python program
> 2) be able to re-create textual representations of XML document structures
> as Python programs
I've done essentially the same thing for Tcl. My XML parser emits a
"Heirarchical Tcl List Representation" of an XML document. For example:
set doc {<?XML VERSION="1.0"?>
<!DOCTYPE MEMO SYSTEM "memo.dtd">
<MEMO REF="1234">
<TO>Audience</TO>
<FROM>Steve</FROM>
<MESSAGE>This is XML!</MESSAGE>
</MEMO>}
XML::parse $doc
returns ==>
parse:pi ?XML {VERSION 1.0} {}
parse:pi !DOCTYPE {SYSTEM memo.dtd} {}
parse:elem MEMO {REF 1234} {
parse:elem TO {} {
parse:text Audience {} {}
}
parse:elem FROM {} {
parse:text Steve {} {}
}
parse:elem MESSAGE {} {
parse:text {This is XML!} {} {}
}
}
(above has been edited slightly for email-readability)
This representation has two features: it can be easily manipulated
as a list, especially with the dummy arguments to parse:pi and parse:text,
and it can be passed to the `eval' command for execution - the element contents
are themselves scripts.
> 1) Such structures give an immediate API in the form of Lispy list
> processing stuff.
> 2) Such structures allow parsers to be compared / checked for correct
> interpretation of XML.
> 3) Such structures give developers something to aim at when developing XML
> markup aware tools.
Agreed, and the similarity of our (independent) approaches is noteworthy.
My only comment is that (2) is modulo list syntax.
Cheers,
Steve Ball
xml-dev: A list for W3C XML Developers
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To unsubscribe, send to majordomo@ic.ac.uk the following message;
unsubscribe xml-dev
List coordinator, Henry Rzepa (rzepa@ic.ac.uk)
|