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]
