This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
Currently, the production is described as follows: MapExpr := "{" (KeyExpr ":" ValueExpr ("," KeyExpr ":" ValueExpr )*)? "}" KeyExpr := ExprSingle ValueExpr := ExprSingle For standard EBNF W3C-style, I believe this should have "::=" instead for the assignment operator. Also, the layout it different from other EBNF productions in the same spec.
Fixed to mimic the standard layout more closely. It's still a simulation, because the map expression syntax isn't integrated with the grammar machinery - this would require defining a complete grammar rather than merely a delta to the XPath 3.0 grammar.