Lists Home |
Date Index |
> > I would be inclined
> > to nominate some of the axes (almost everything but children and
> > descendants) as the prime things to exclude from XQuery, both
> > because they
> > are hard to optimize and hard to statically type in any sort
> > of useful way.
> Now I can reverse the argument: surely most of the axes are just syntactic
> sugar for a recursive function call? And using the ancestor axis (for
> example) explicitly is surely both more convenient for the user, and
> to optimize, than a recursive call on a getParent() function?
I would exclude the parent axis as well as the ancestor. It doesn't make
much sense to me to include parent, child, descendant but exclude ancestor.
> Also, I've never understood why the descendant axis is supposedly easier
> statically type than the ancestor axis.
Because the child axis is easier to statically type that the parent axis.
The type of an element (in the XDuce/XQuery sense) tells you the possible
attributes and children but doesn't tell you the possible parents. Maybe
you could do a type system that would tell you about the parents as well,
but I suspect you would get a combinatorial explosion if your type system
attempts to deal with both parents and children.