
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