Re: About o:XML
Martin Klang <[email protected]> Thu, 21 Apr 2005 00:12:33 +0100
| Newsgroups | gmane.text.xml.o-xml |
|---|---|
| Message-ID | <[email protected]> |
Hello Ashwin, This has already to some extent been covered in replies from Brian and Frank, but I think it's worth noting the difference between XQuery and languages such as o:XML. XQuery is not a general-purpose language, it's purpose is quite specific. It's true that it can be used for many other purposes aside from that intended, but doing so usually requires a great deal of inventiveness and bending of the paradigm. Similarly to how for example XSLT can be used as a general-purpose language, if you really want to. XQuery, unlike XSLT and o:XML, is not itself encoded in XML. It's a text and keyword based language, with constructs for generating XML output. This hybrid approach is interesting, but doesn't bring the advantages of XML-based languages that Frank and Brian describe. Instead XQuery has the same limitations as other keyword-based languages. The way I see it o:XML has two key benefits: 1) XML-based source code that can be computer processed and/or hand-edited, similarly to XSLT. 2) Object-oriented, XPath-based expression language. A benefit of 1) is that code can be very easily generated, for example by code wizards or from high-level descriptions. Writing o:XML programs that generate other programs is equally simple. Another consequence of 1) is that o:XML code can be processed by analysis tools, or used to generate documentation and UML models, or integrated with eg Aspect or Design by Contract paradigms etc. The sky really is the limit, and writing tools using off-the-shelf XML processing components is easy - UML roundtripping for o:XML was achieved within 2-3 days of XSL coding. Finally, the XML format is extensible, which means that rich documentation, meta-information (eg deployment descriptions), unit tests, requirements etc can live side by side with the code. XML makes the structure of the code transparent, which makes it easy to integrate it within the bigger context of running a software development project. As for 2), I believe that XPath is to XML what SQL is to relational db's, or regular expressions to text. o:Path extends XPath with OO capabilities. Used with a seamless combination of literal and dynamic XML, possible thanks to 1), it makes generating and processing XML easier than with any other language. No DOM, SAX or similar API's necessary, just native XML and o:Path. And o:XML is a general-purpose, full-featured OO language, which can't be bad. /m On 18 Apr 2005, at 16:58, Ashwin Jayaprakash wrote: > Hi guys, > I have a simple question regarding your project. I've been following > such "executable XML" libraries for sometime now. But recently, XQuery > has picked up a lot of momentum. I'd appreciate it if you could > explain to me how projects such as yours or Jelly etc are different > from XQuery or where one would use o:XML and not XQuery. I still don't > know why one would want to write a program in XML and not in simple > English-like languages like Java/C. > > Thanks, > Ashwin (www.JavaForU.com).