Richard Jones wrote:
On the other hand, the code is hard to understand. It's not clear to
me what the .( ) syntax means, nor why there is an apparently trailing
/ character.
From the manual:
If the x-expression e evaluates to an x-sequence, the construction e/
will result in a new x-sequence obtained by taking in order all the
children of the XML elements from the sequence e. For instance, the
x-expression [<a>[ 1 2 3 ] 4 5 <b>[ 6 7 8 ] ]/ evaluates to the x-value
[ 1 2 3 6 7 8 ].
If the x-expression e evaluates to an x-sequence, the construction e.(t)
(where t is an x-type) will result in a new x-sequence obtained by
filtering e to keep only the elements of type t. For instance, the
x-expression [<a>[ 1 2 3 ] 4 5 <b>[ 6 7 8 ] ].(Int) evaluates to the
x-value [ 4 5 ].
I have some comments:
(A) "Subtyping failed" is a very common error, but is only mentioned
briefly in the manual. I have no idea what these errors mean, so they
should have more explanation. Here is a simple one which was caused
by me using a value instead of a list (but that is not at all obvious
from the error message):
Error: Subtyping failed Latin1 <= [ Latin1* ]
Sample:
[ Latin1Char ]
The error tells you that Latin1 is not a subtype of [ Latin1* ].
It probably means that you are trying to use a value of type Latin1
where a value of type [ Latin1* ] is expected.
(B) I think the interfacing code here:
http://yquem.inria.fr/~frisch/ocamlcduce/samples/expat/
http://yquem.inria.fr/~frisch/ocamlcduce/samples/pxp/
http://yquem.inria.fr/~frisch/ocamlcduce/samples/xmllight/
should be distributed along with ocamlduce.
There was a GODI package that includes them. It would be ok to put these
files in the distribution without compiling them (otherwise it would
create a dependency on more OCaml packages). It's up to Stéphane Glondu,
the new maintainer of OCamlDuce.
Cheers,
Alain
_______________________________________________
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