- From: Kay, Michael <Michael.Kay@softwareag.com>
- Date: Thu, 16 Oct 2003 04:23:19 +0200
- To: Michael Brundage <xquery@comcast.net>, "'Kay, Michael'" <Michael.Kay@softwareag.com>, "'Guido Moerkotte'" <moerkotte@informatik.uni-mannheim.de>, public-qt-comments@w3.org
- Cc: mrys@microsoft.com, moer@pi3.informatik.uni-mannheim.de
- Message-ID: <DFF2AC9E3583D511A21F0008C7E62106073DD1D2@daemsg02.software-ag.de>
It's true that a helpful implementation might not barf on this query. But
that's not much help to the user, who has a requirement that no conformant
implementation will barf on it.
Michael Kay
>
> As I understand it, this query (like almost all queries that
> raise dynamic errors) is nondeterministic -- XQuery allows an
> implementation to return the name of the single matching
> person without error (for example, if the implementation has
> indexed on age and thus compares only the one person).
>
> As section 2.5.3 says, "the detection and reporting of
> dynamic errors is implementation dependent. When an
> implementation is able to evaluate an expression without
> evaluating some subexpression, the implementation is never
> required to evaluate that subexpression solely to determine
> whether it raises a dynamic error."
>
> Because an implementation does not need to evaluate the where
> clause for every node just to exclude the ones that cannot
> match (and yet still produce results consistent with the
> formal semantics), the type error need not be raised.
>
>
> Cheers,
> michael brundage
>
> -----Original Message-----
> From: public-qt-comments-request@w3.org
> [mailto:public-qt-comments-request@w3.org] On > Behalf Of Kay,
> Michael
> Sent: Wednesday, October 15, 2003 8:02 AM
> To: Guido Moerkotte; Kay, Michael; public-qt-comments@w3.org
> Cc: mrys@microsoft.com; moer@pi3.informatik.uni-mannheim.de
> Subject: RE: XQuery
>
>
> > The remaining question is when is data correct or incorrect.
> Clearly there are different ways of defining this. One way is
> that data is correct if it matches the state of the real
> world (if the data says my date of birth is 13 Nov 1980, it
> is incorrect). I was using the term "bad data" to mean "data
> that violates the assumptions that my query/stylesheet makes
> about what constitutes good data". In general this is a
> stricter requirement than "valid according to a schema/DTD"
> since there are many constraints that cannot be expressed in
> a schema or DTD - not only cross-document constraints, but
> also contextual constraints (a date must be in the future)
> and constraints that are too complex to express in a given
> schema language (e.g. if @x=1 then @y must be present).
> > If there is a schema (XSchema,DTD) against which it is to be
> > validated, then I would tend to define data as correct if and
> > only if it validates correctly. If there is no schema, data
> > is correct if it is well-formed.
> >
> > The above document is well-formed and (if you agree) correct data.
> >
> > I don't see anything wrong with the following query:
> >
> > for $p in document("p.xml")//person
> > where $p/@age = 3
> > return $p/@name
> >
> > Why should it fail?
> I think you have found a bug. I don't think this query should
> fail simply because the untyped attribute @age contains a
> value that cannot be converted to a double. I think the
> comparison should return false. My colleagues may disagree;
> but certainly, if this fails, it is a nasty incompatibility
> with XPath 1.0. Michael Kay
>
Received on Wednesday, 15 October 2003 22:24:05 UTC