Implicit template restrictions for map templates
General Information
Clauses: 15.8.2, 6.2.15.9
Summary
The introduction of optionality rules for map templates made the table 13C obsolete for map templates. As map templates can include fields with optional match or a generic AnyElementsOrNone for the whole template, the implicit restriction for fields of unrestricted map templates or map templates with the present restriction can no longer be template(present). There should be no implicit restriction in this case.
For map templates with value or omit restriction, the current rules on implicit restrictions should stay. That's because generic rules of template restrictions require that values of these templates shall be seamlessly convertible into non-template values (and usable for sending) and rules for non-template map values disallow using omit for map elements. However, I think that for clarity, this should be explicitly stated in 6.2.15.9.
Description
Proposed changes:
The table 13C shall contain a dedicated row for map templates with the following values: template(value) | template(value) | template | template
The second paragraph of 6.2.15.9 shall be changed in the following way (original in italics):
Keys of map templates shall not contain matching symbols. Value fields associated with keys of map templates with the value and omit restriction shall not contain matching symbols (including omit). Value fields associated with keys of unrestricted map templates or map templates with the present restriction might contain matching symbols including symbols for optional fields such as omit, * or ifpresent (see Annex B for more details).