Stream: conformance
Topic: Double rim-Mapping
 Simone Heckmann (Nov 07 2017 at 18:08):
Is there a particular reason why all elements in Forge have two indistinguishable rim-Mappings, neither of which can be deleted?
pasted image
 Michel Rutten (Nov 07 2017 at 20:01):
These mappings are inherited, probably from type profiles and/or e.g. Element.
 Simone Heckmann (Nov 07 2017 at 20:35):
Is that a bug in the spec then? I don't see how two identical mappings would make sense...
 Michel Rutten (Nov 08 2017 at 09:08):
Guess the snapshot generator doesn't merge these inherited mappings because "n/a" != "N/A".
 Michel Rutten (Nov 08 2017 at 09:16):
Inspecting Profiles-types.xml:
Root element definition of type Element:
  <element>
    <path value="Element" />
    <!-- ... -->
    <mapping>
      <identity value="rim" />
      <map value="n/a" />
    </mapping>
  </element>
Root element definition of type Extension (derived from Element):
  <element>
    <path value="Extension" />
    <!-- ... -->
    <mapping>
      <identity value="rim" />
      <map value="N/A" />
    </mapping>
  </element>
The .NET snapshot generator tries to merge inherited mappings that are identical.
In this case, the inherited RIM mappings aren't merged because "n/a" != "N/A" (case sensitive comparison).
So we could:
1) Harmonize the casing of all the RIM mappings in the core definition
2) Define that comparison of mapping.map values is case-insensitive (?)
 Lloyd McKenzie (Nov 08 2017 at 13:24):
non-case-sensitive will be reasonable most of the time, but it's theoretically possible it could create problems in rare edge cases
 Michel Rutten (Nov 08 2017 at 14:31):
Indeed, but how do we determine when it is acceptible/valid to perform case-insensitive comparison?
So I'd prefer to correct the mappings in the core definitions.
Last updated: Apr 12 2022 at 19:14 UTC
                