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