RE: Better static type checking for XQuery

 
> 
> In addition to using more accurate type checking rules, it 
> may be possible to make XQuery static type checking more 
> user-friendly by relaxing some of the rules.
> 
> Does anyone know of any useful relaxations for static type 
> checking rules which would produce fewer type errors without 
> unduly sacrificing type safety?
> 

XQuery implementations are not obliged to implement static type checking (or
"pessimistic" static checking as I call it). And in fact, I think most
implementations don't.

Saxon implements what I call "optimistic" static type checking. At compile
time it compares the static type of the supplied value (S) to the required
type (R). If R subsumes S, all is well. If R and S are disjoint, you get a
static error. If R and S overlap, code is generated to do a dynamic type
check. There is also one special rule: if the intersection of R and S is the
empty sequence, you get a compile-time warning (this covers the case where
the supplied type is string? and the required type is integer?).

Personally I think this gives you much better usability.

The rules in the spec allow pretty well any combination of static and
dynamic type checking.

Michael Kay
(personal response) 

Received on Wednesday, 17 October 2007 18:38:25 UTC