This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
In section 3.4, the SML spec specifies that the XPath expression in the sml:selector attribute must match a grammar given in BNF form. The grammar provides that the SML 'deref' function may be called in the XPath expression, by including a production for a non-terminal called DerefExpr. It would probably be simpler (requiring less grammar, or none) just to allow a normal XPath function call and specify that the sml:deref function must be available in the library of functions known to the XPath interpreter. So I propose that the spec be changed to say that, instead of conveying that fact through the grammar.
The XML id constraint selector uses a restricted subset of XPath. It does not allow any fn call. SML extends this to allow call to only the deref() fn. This is why we have the explicitly defined production DerefExpr.
I think the desired effect can be formulated by saying that when the XPath expression in the id constraint selector is evaluated, the 'function implementations' property of the dynamic context is empty except for the SML 'deref' function. This has the advantage that we do not need to write BNF to try to handle the complexities of QName prefixes. It makes it easier to modify or adjust the set of available functions in future; that may or may not be an advantage.
I think that the BNF in the spec is more useful since it clarifies that we allow deref functions to be nested. I recommend that we resolve this bug as WONTFIX