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 following is written in the working draft: [101] ItemType ::= ... | MapType [102] MapType ::= 'map' '(' ( '*' | (AtomicOrUnionType ',' SequenceType) ')' [69] ItemType ::= ... [109] MapType ::= ... (rationale: [69] is the current number for ItemType, [109] is the first available free number). In addition (1), I think it is better to repeat the current definition for ItemType to avoid potential confusion: [69] ItemType ::= KindTest | ("item" "(" ")") | FunctionTest | AtomicOrUnionType | ParenthesizedItemType | MapType In addition (2), perhaps it is better to split MapType into GenericMapType and TypedMapType, which I think aligns better with current practice for EBNF, and it works for better reference and easier parsing of the EBNF: [109] MapType ::= 'map' '(' (GenericMapDecl | TypedMapDecl) ')' [110] GenericMapDecl ::= '*' [111] TypedMapDecl ::= AtomicOrUnionType ',' SequenceType
I have tidied up the production rules, subject to constraints imposed by the technology. I'm reluctant to do any substantial refactoring of the syntax as these rules are about to be absorbed into the XPath grammar.