Version franÁaise
Home ††† About ††† Download ††† Resources ††† Contact us †††
Browse thread
xpath or alternatives
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Till Varoquaux <till@p...>
Subject: Re: [Caml-list] xpath or alternatives
OCamlduce (Alain correct me if I am wrong) basically maintains two
separate type systems side by side (the Xduce one and the Ocaml one).
This is done in order to make Ocamlduce maintainable by keeping a
clear separation. As a result you have to explicitly convert values
between type systems using {:...:}. These casts are type safe but do
lead to some work at runtime.

Also note that ocaml's string are Latin1 and not String in the XML world. So:

 let devs = match xml with
   | {{ <domain>[<devices>[<source dev=(Latin1 & dev) ..>[]]] }} -> {:dev:}
   | {{ <domain>[<devices>[<source file=(Latin1 & file) ..>[]]] }} ->
{:file:} in

Should work (I'm rusty and have nothing to check handy).

Till


On Wed, Sep 30, 2009 at 8:59 AM, Richard Jones <rich@annexia.org> wrote:
> On Wed, Sep 30, 2009 at 12:57:23PM +0100, Richard Jones wrote:
>> On Wed, Sep 30, 2009 at 04:05:03AM -0700, Dario Teixeira wrote:
>> > Hi,
>> >
>> > Ocamlduce has been mentioned before in this thread, but I didn't catch
>> > the reason why it has been discarded as a solution.  Is it because you
>> > don't want to carry the extra (large) dependency, or is there some other
>> > reason?
>>
>> Actually the reason is that I thought it wasn't available for 3.11.1,
>> but I just checked the website and it is, and ocamlduce does seem to
>> be the obvious solution for this problem.  (However I'll need to try
>> and see if I can come up with the equivalent code).
>
> Do any cduce developers want to give me a clue here?  It would seem
> like I need something along these lines:
>
>  let devs = match xml with
>    | {{ <domain>[<devices>[<source dev=(String & dev) ..>[]]] }} -> dev
>    | {{ <domain>[<devices>[<source file=(String & file) ..>[]]] }} -> file in
>
> However according to the compiler, devs has type <XML>.  In any case,
> I think I may need either the map or map* operator, since I want to
> match all, not just the first one.
>
> Rich.
>
> --
> Richard Jones
> Red Hat
>
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>