W3C home > Mailing lists > Public > public-qt-comments@w3.org > May 2007

[Bug 4581] [FS] Quantifiers in static type of name tests

From: <bugzilla@wiggum.w3.org>
Date: Thu, 24 May 2007 14:17:13 +0000
CC:
To: public-qt-comments@w3.org
Message-Id: <E1HrE7t-0006FE-4W@wiggum.w3.org>

http://www.w3.org/Bugs/Public/show_bug.cgi?id=4581

           Summary: [FS] Quantifiers in static type of name tests
           Product: XPath / XQuery / XSLT
           Version: Recommendation
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Formal Semantics
        AssignedTo: jmdyck@ibiblio.org
        ReportedBy: nick@cbcl.co.uk
         QAContact: public-qt-comments@w3.org


In section 8.2.3.1.1 it states "For example, if $v is bound to an element with
a computed name, the type of $v is element. The static type computed for the
expression $v/self::foo is element foo of type xs:anyType, which makes use of
foo in the name test to compute a more specific type."

The static typing rules in this section reflect this behaviour. But I do not
think the quantifier is correct.

If $v is an element (so has static type element * of type xs:anyType) then it
may or may not satisfy self::foo, as when evaluated the name might not be
"foo", in which case an empty sequence is returned.

Therefore I think the static type should be "(element foo of type
xs:anyType)?". So therefore the type inferences for "element of element *" and
"attribute of attribute *" should be:

statEnv |-  test QName2 with element of element * OptTypeSpecifier : element
QName2 OptTypeSpecifier ?
Received on Thursday, 24 May 2007 14:17:22 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:57:18 UTC