Re: Request for clarification, possible spec defect

A FunctionName is a QName and can contain a colon.

I think it would be clearest to add a sentence saying "If the character
following a QName (possibly after any intervening ExprWhitespace) is (,
then the token must be recognized as a FunctionName."

The current wording is almost defensible because the grammar for QName
in the Namespaces Rec ends with NCName, thus any occurrence of a QName
followed by a ( is also an instance of an NCName followed by (.

gmarcy@us.ibm.com wrote:
> 
> I have run across the following inconsistency in the spec:
> 
> In section "3.7 Lexical Structure", it says the following:
> 
>         "If the character following an NCName (possibly after intervening
> ExprWhitespace) is (, then the token
>         must be recognized as a NodeType or a FunctionName."
> 
> and
> 
>         "Otherwise, the token must not be recognized as a MultiplyOperator,
>  an OperatorName, a NodeType, a
>         FunctionName, or an AxisName."
> 
> However, the production for FunctionName reads:
> 
>     [35] FunctionName ::= QName - NodeType
> 
> So the question is "Can a FunctionName contain a ':' character?"  If it
> can, then the earlier prose needs to
> say that the '(' can follow a QName, not just an NCName.  If not, then the
> production for FunctionName
> should be "FunctionName ::= NCName - NodeType".
> 
> Comments?
> 
> Glenn Marcy
> Technical Consultant
> XML Technology Group, IBM

Received on Friday, 24 March 2000 00:06:23 UTC