Skip to content

Control Measure fragments: separate the drawn content from the construction scaffolding #78

Description

@ctgnz

Every other fragment holds exactly one content element. Control Measure fragments hold two or three,
because they carry illustrative scaffolding alongside the content:

shape files
<g>#main + <g>#template 534
<g>#main + <g>#template + <g>#example 6
<pattern>#SVGID_2_ + <g>#main + <g>#template 3
<polygon>#main + <g>#template 2

545 of the 573 Control Measure fragments, and they are the only main icons in either tree that are not
single-root.

That is consistent with what these files are: GIS construction samples showing how a control measure is
drawn on a map, rather than icons composed into a symbol. APP-6E 8.1.3 exempts them from the composition
rules, and #59 gave them FREE_CANVAS for the same reason.

Why it matters now

Injecting fragments into the generated classes needs a rule for "which element is the content". Everywhere
else that rule is trivial. Here it needs either an exception, or these files tidied so the content stands
on its own.

Options

  1. Split the scaffolding out - keep #main in the fragment and move #template/#example to a
    separate file or directory, so the fragment holds only what is drawn.
  2. Mark it rather than move it - keep the files as they are and rely on #main being the content,
    making that part of the documented rule. Cheaper, but leaves the fragments carrying material no
    consumer ever renders.
  3. Leave them out of injection entirely, since they are exempt from composition anyway.

Worth deciding deliberately - these are 545 files and whichever way it goes should be a single mechanical
pass, verified with SvgFingerprint the way #71 was.

Note the 3 files with a <pattern> also hold the only live internal id reference in the tree
(url(#SVGID_2_)), so they need care whichever option is taken.

Preparation for the 2.0.0 fragment injection work.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions