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