[Bug 3946] Typing of processing-instructions

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

           Summary: Typing of processing-instructions
           Product: XPath / XQuery / XSLT
           Version: Candidate Recommendation
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Formal Semantics
        AssignedTo: simeon@us.ibm.com
        ReportedBy: nick@cbcl.co.uk
         QAContact: public-qt-comments@w3.org


We are looking at ForExprType060 and ForExprType061 in XQTS which are

for $test as processing-instruction("filesystem") in
($input-context//fs:Folder)[1]//processing-instruction()
return $test

and

for $test as processing-instruction("unknown") in
($input-context//fs:Folder)[1]//processing-instruction()
return $test

one if which is meant to throw a type exception, the other not, as all
processing instructions nodes are <?filesystem?>. But I don't believe the
formal semantics describe this behaviour.

The normalization rules in 3.5.4 state

[processing-instruction(StringLiteral)]sequencetype == processing-instruction?


Static typing in 4.8.2:

statEnv |-  Expr1 : Type1
Type0 = [ SequenceType ]sequencetype
statEnv  |-  prime(Type1) <: Type0
statEnv |-  VarName1 of var expands to Variable1
statEnv + varType(Variable1 => Type0)  |-  Expr2 : Type2
statEnv |-  for $VarName1 as SequenceType in Expr1 return Expr2 : Type2 ·
quantifier(Type1)

passes for the above expressions as the types are Type0 and prime(Type1) are
both processing-instruction


For dynamic evaluation 8.3.1 Matches states

statEnv |-  processing-instruction NCName { String } matches
processing-instruction

and 

statEnv |-  Value matches (Type | empty)
statEnv |-  Value matches Type?


as I believe according to the formal semantics all processing instructions
match processing-instruction("anything").

Received on Thursday, 2 November 2006 18:17:16 UTC