- From: Jerome Simeon <simeon@research.bell-labs.com>
- Date: 17 Jan 2002 12:18:24 -0500
- To: hme@informatik.uni-rostock.de
- Cc: www-ql@w3.org
On Thu, 2002-01-17 at 10:57, hme@informatik.uni-rostock.de wrote:
> Hello Jerome,
>
> You (Jerome Simeon) wrote:
> > Holger,
> >
> > The XQuery static typing handles dynamic element names fine. The trick
> > is to realize that wildcard names are part of the type system and can be
> > used to type such an operation.
> >
> > For instance:
> >
> > element title { "Lord of the Rings" }
> > has type
> > element title { xs:string }
> >
> > and:
> >
> >
> > where the * is a wildcard that stands for all possible QNames.
> >
> > So you can statically type this expression without problem, you just get
> > a less precise type.
>
> A type that stands for all possible types precisely.
Note that it's only all possible types for the element *name*. The
content of the element itself is still precisely typed (here
xsd:string), based on the expression that computes the content of the
element.
> If the evaluation
> generates a value that is not a QName at all than a dynamic type
> exception happens? Or did XQuery not check the type during the
> evaluation phase in this circumstance?
>
No, this would be checked statically too. The typing rule looks like:
e1 : xs:qname e2 : t2
------------------------------------------
element { e1 } { e2 } : element * { t2 }
So e1 needs to be of type qname otherwise it is ill-typed. But in all
cases, the type for the resulting element does not know which will be
the actual qname, hence the element * { t2 } type.
Well I guess it means my query above was not quite right, and should
look like:
element { if $language = "french"
then xf:qname("titre")
else xf:qname("title") }
{ "LoTR" }
Where:
if $language = "french"
then xf:qname("titre")
else xf:qname("title")
has type xs:qname
and the whole expression has type: element * { xs:string }
> Is that really static typing anymore?
>
I believe it is :)
More seriously, I think XML and XML Schema are quite flexible models and
schema language and so I think we need a type system that provides the
same flexibility. We certainly need to deal with both well-formed and
validated documents and the XQuery type system supports both.
- Jerome
> > You can see more details about the typing for element constructors in
> > section 4.4 of the XQuery formal semantics (June working draft).
>
> You are right, I'll have a closer look at that draft.
>
> Regards
>
> Holger
>
> --
> Holger Meyer, Uni of Rostock, Dpt. of CS, DB Research Group
> hm at GUUG.de, http://www.informatik.uni-rostock.de/~hme/
>
Received on Thursday, 17 January 2002 12:19:12 UTC