[Home] [By Thread] [By Date] [Recent Entries]

  • To: <xml-dev@l...>
  • Subject: Greenspun's tenth law rears its head: was InnerXml is like printf (WAS: Underwhelmed)
  • From: Bill de hÓra <dehora@a...>
  • Date: Mon, 23 Sep 2002 08:55:08 +0100
  • Importance: Normal
  • Reply-to: <dehora@a...>


> From: Miles Sabin [mailto:miles@m...]
>
> [regarding these examples:
<http://lists.xml.org/archives/xml-dev/200209/msg00718.html>]
>
> Can you, in all honesty, say that the latter is cleaner, more
> consistent and less confusing than the former?

I can :) There's only one programming language to deal with in the XOM
example. The former has Java with XPath 'macros'. And at the back of
both is the XHTML, which is the domain language we're interested in.
Fwiw, I don't see *either* of these as that desirable to program in (but
probably better than what I'm already using). By the looks of things,
the problem seems to be in Java itself, not anyone's particular
proposal. 

You can shorten the verbose XOM version a bit, if you don't mind
non-idiomatic Java:

  Element head = new Element("head")
   .add(new Element("title)
     .add("Example 3"))
   .add(new Element("link")
     .add(new Attribute("rel", "stylesheet"))
     .add(new Attribute("type", "text/css"))
    .add(new Attribute("href", "/ss/style.css")));

  Element body = new Element("body")
   .add(new Element("p")
     .add("Hello World"));

  Element html = new Element("html")
   .add(head)
   .add(body);

(why type "appendChild", when I can just type "add"?). 

At this point, we might as well give in and use Lisp, being a natural
fit for manipulating syntax trees. As for InnerXML, it looks like Lisp's
read-from-string function.

Bill de hÓra 
--
Propylon
www.propylon.com 


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member