|
Boost : |
Subject: Re: [boost] Probing interest in a typed XML traversal library
From: Klaim (mjklaim_at_[hidden])
Date: 2010-12-02 05:54:59
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_at_[hidden]> 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
>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk