
Hi! Your library seems interesting (I'm not an expert at all here but I like the idea). However the examples are far from being obvious about this librarie's use. Maybe some kind of "hello world" or simple FULL example might help? A simple heavily commented program doing some simple manipulations using a given test xml file and an xsd file might be a good idea. I understand the global idea but your examples are only about retrieving informations. Maybe I missed a more complete example? By the way, did you already setup some performance tests? Just to get an idea. On Tue, Nov 30, 2010 at 20:21, Sumant Tambe <sutambe@gmail.com> wrote:
Hello boosters!
I'm interested in gauging interest in a typed XML traversal library that combines the succinctness of XPath with the type-safety of XML data-binding tools. I've been developing one such library called LEESA: Language for Embedded Query and Traversal <http://www.dre.vanderbilt.edu/LEESA>. LEESA has several capabilities:
1. Succinct and expressive XPath-like notation for writing object structure traversals 2. Supports child, parent, sibling, descendant, ancestor axes 3. Compile-time schema conformance checking 4. Supports GOF visitors and hierarchical visitors 5. Strategic Programming ... and more!
Here are two quick examples comparing XPath and LEESA. More examples are available on the LEESA homepage.
XPath expression: "/catalog/book/author/name/text()" LEESA expression: *std::vector<name> author_names = evaluate(root, catalog() >> book() >> author() >> name()); *
XPath expression: "//name/text()" LEESA Expression: *std::vector<name> names = evaluate(root, catalog() >> DescendantsOf(catalog(), name())); *
The above expressions are checked for schema-conformance at compile-time. LEESA builds these capabilities on top of existing XML data binding tools that generate C++ code from .xsd files. The general process of using LEESA is as follows:
1. Generate C++ classes using your favorite XML data binding tool 2. A python script that comes with LEESA adds a few functions in every generated C++ class. It generates a lot of typedefs and helper functions, which invoke tool generated code. This creates a bridge between LEESA and the code generated by the xml data binding tool. Currently it supports Code Synthesis's xsd and Universal Data Model (UDM) from Vanderbilt University as the underlying code generators. 3. The user includes LEESA.h in his/her C++ program (it is header-only), uses its programming model, compiles, and links with the tool generated code and libraries.
So folks, please speak up if you are interested in having such a library in Boost.
Thanks,
Sumant _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost