[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2009-09-30 (13:33) |
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 >