Dear Fellow Cocoon Users:

I just read the forwarded message on xml-dev mailing list and realized that Groovy makes a perfect language for business logic intermixed with XML, such as XSP pages.

This may also be a simpler approach to FlowScript.

I am not sure if Cocoon supports this, but I thought I'd point out an interesting article.

Kind regards,
Oleg
--- Begin Message ---
Hi,

  allow my to follow up with another commentary on
XAML - Microsoft's latest "innvention" unveiled at the
Longhorn Love-In last week in Los Angeles - that lets
you mix markup languages with classic programming
languages and declares both first-class citizen made
for each other.
  
  To see how "revolutionary" Microsoft's latest XAML
thingy is may I introduce Groovy a new dynamic
scripting language for the Java runtime cooked up by
James Strachan (of Geronimo, Jelly, dom4j and more
fame) and Bob McWhirter (of Jaxen, dom4j, codehaus and
more fame) that lets you do more with less and that
also tries to fix up XML using the headline
"TreeBasedSyntax".

   James writes on the Groovy TreeBasedSyntax Wiki
page:

We have native syntax support for List and Maps. We
should also support arbitrary nested tree structures.
e.g. DOMish APIs or Ant tasks or Jelly tags or Swing
widgets or whatever. Each may have their own
particular factory mechanism to create the tree of
objects - however they can share the same markup
syntax to define them - in a concise alternative to
XML.

In general we'd like to support a few kinds of
markup...

* generic tree structures (making groovy.lang.Node a
first class syntax like Map and List are)
* custom tree structures (beans, DOMs, Swing, Ant,
Jelly etc)
* metadata (JDK 1.5 style) 

  Now James is not all talk but also wipes up some
examples that already work with the latest Groovy CVS
snapshot:

f = frame(size:[300,300], text:'My Window') {
    label(bounds:[10,10,290,30], text:'Save changes')
    panel(bounds:[10,40,290,290]) {
        button(text:'OK', action:{ save(); close() })
        button(text:'Cancel', action:{ close() })
    }
}

 James also shows off how you can mix scripting with
markup:

f = frame(text: calculateFieldName(foo, 1234))

    // lets iterate through some map
    map = [1:"hello", 2:"there"]

    for e in map {
      label(name:e.value)
      textfield(name:e.value)
    }
}
    
  Full story @
http://wiki.codehaus.org/groovy/TreeBasedSyntax

  Any comments?

  - Gerald

PS: For more info about Groovy, check out the Java
Republic stories titled "Groovy - Jazzing Up Plain Old
Java" online @
http://viva.sourceforge.net/republic/2003/09/groovy_jazzing_up_plain_old_java.html
and "Groovy: Making Java More Funky" online @ 
http://viva.sourceforge.net/republic/2003/10/groovy_making_java_more_funky.html

______________________________________________________________________ 
Post your free ad now! http://personals.yahoo.ca

-----------------------------------------------------------------
The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
initiative of OASIS <http://www.oasis-open.org>

The list archives are at http://lists.xml.org/archives/xml-dev/

To subscribe or unsubscribe from this list use the subscription
manager: <http://lists.xml.org/ob/adm.pl>




--- End Message ---
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to