MapML icon indicating copy to clipboard operation
MapML copied to clipboard

Define element categories: Metadata, Feature, Extent

Open Malvoz opened this issue 3 years ago • 4 comments

Quite an old and I guess semi-experimental branch, because I'm not exactly sure if we should go through with #206.

  • Fixes https://github.com/Maps4HTML/MapML/issues/209

    By (re-)defining the <style> element.

  • Fixes https://github.com/Maps4HTML/MapML/issues/84

    If you want to allow only MapML elements here, don't use "metadata content"

    We do want to use at least a subset of (HTML) metadata elements. We now (re-)define all allowed metadata elements, and link to our definition of "metadata", and not HTML's. They include "Elements from other namespaces whose semantics are primarily metadata-related (e.g. RDF)".

    (At some point we may want to change these metadata elements' definitions to just link to the HTML spec instead, if that makes sense. Same as SVG: https://www.w3.org/TR/SVG/struct.html#HTMLMetadataElements.)

  • Fixes https://github.com/Maps4HTML/MapML/issues/206

    Defines Metadata-, Feature-, and Extent content to help with establishing the content models of MapML elements.

    This also allows the reader to create a mental model of MapML's structure, see the sidebar:

    mapml-element-categories

Malvoz avatar Apr 05 '22 21:04 Malvoz

The large edits in this PR are due to moving the tile and image elements to their respective sections.

Malvoz avatar Apr 05 '22 21:04 Malvoz

Note that "extent content", if used like the term "phrasing content" or similar means that the list of elements that are characterized as "extent content" are allowed here / have meaning here, but that's not the case in your use of the term in the image above. What we want "extent content" to mean (if we define such a category) is "the extent element can be used here, see elsewhere for what content category is allowed inside the extent element itself". I don't yet have another element that I can think of as "extent content" besides <extent> itself.

prushforth avatar Apr 06 '22 00:04 prushforth

What we want "extent content" to mean (if we define such a category) is "the extent element can be used here, see elsewhere for what content category is allowed inside the extent element itself"

If you follow: Content model of layer -> Extent content -> (e.g.) input:

Contexts in which this element can be used:     Required to be a child of the extent element.

I think it makes sense (although the Contexts will need updating in some other cases: https://github.com/Maps4HTML/MapML/issues/74). OTOH it seem to go against the definition of Contexts in which this element can be used:

This information is redundant with the content models of elements that allow this one as a child, and is provided only as a convenience.

So maybe:

  1. take out extent from Extent content, take out feature from Feature content
  2. in the Content models for layer and body allow (in conjunction to Metadata content and tile) extent and feature elements (as opposed to Extent content and Feature content)
  3. use Extent content as Content model for extent only, use Feature content as Content model for feature only
  4. (what should Categories be for feature, extent and tile?)

Malvoz avatar Apr 06 '22 09:04 Malvoz

Updated Feature and Extent element categories per above comments, in https://github.com/Maps4HTML/MapML/pull/230/commits/281817e23eff51353ee20eb587f62b71f52038f4:

updated-element-categories

Malvoz avatar Apr 06 '22 11:04 Malvoz