<?xml version=“1.0” encoding=“UTF-8”?> <grammar ns=“www.metanorma.org/ns/ogc” xmlns=“relaxng.org/ns/structure/1.0”>

<!--
  Currently we inherit from a namespaced grammar, isostandard. Until we inherit from isodoc,
  we cannot have a new default namespace: we will end up with a grammar with two different
  namespaces, one for isostandard and one for csand additions. And we do not want that.
-->
<include href="isodoc.rng">
  <start>
    <ref name="ogc-standard"/>
  </start>
  <define name="DocumentType">
    <choice>
      <value>abstract-specification-topic</value>
      <value>best-practice</value>
      <value>change-request-supporting-document</value>
      <value>community-practice</value>
      <value>community-standard</value>
      <value>discussion-paper</value>
      <value>engineering-report</value>
      <value>other</value>
      <value>policy</value>
      <value>reference-model</value>
      <value>release-notes</value>
      <value>standard</value>
      <value>user-guide</value>
      <value>white-paper</value>
      <value>test-suite</value>
    </choice>
  </define>
  <define name="editorialgroup">
    <element name="editorialgroup">
      <ref name="committee"/>
      <optional>
        <ref name="subcommittee"/>
      </optional>
      <optional>
        <ref name="workgroup"/>
      </optional>
    </element>
  </define>
  <define name="BibDataExtensionType">
    <optional>
      <ref name="doctype"/>
    </optional>
    <optional>
      <ref name="docsubtype"/>
    </optional>
    <ref name="editorialgroup"/>
    <zeroOrMore>
      <ref name="ics"/>
    </zeroOrMore>
  </define>
  <define name="preface">
    <element name="preface">
      <optional>
        <ref name="abstract"/>
      </optional>
      <ref name="foreword"/>
      <optional>
        <ref name="submitters"/>
      </optional>
    </element>
  </define>
  <define name="DocumentSubtype">
    <choice>
      <value>conceptual-model</value>
      <value>conceptual-model-and-encoding</value>
      <value>conceptual-model-and-implementation</value>
      <value>encoding</value>
      <value>extension</value>
      <value>implementation</value>
      <value>profile</value>
      <value>profile-with-extension</value>
      <value>general</value>
    </choice>
  </define>
</include>
<define name="TextElement" combine="choice">
  <ref name="hi"/>
</define>
<define name="PureTextElement" combine="choice">
  <ref name="hi"/>
</define>
<define name="hi">
  <element name="hi">
    <zeroOrMore>
      <choice>
        <ref name="PureTextElement"/>
        <ref name="stem"/>
      </choice>
    </zeroOrMore>
  </element>
</define>
<define name="submitters">
  <element name="submitters">
    <ref name="Basic-Section"/>
  </element>
</define>
<define name="committee">
  <element name="committee">
    <choice>
      <value>technical</value>
      <value>planning</value>
      <value>strategic-member-advisory</value>
    </choice>
  </element>
</define>
<define name="subcommittee">
  <element name="subcommittee">
    <ref name="IsoWorkgroup"/>
  </element>
</define>
<define name="workgroup">
  <element name="workgroup">
    <ref name="IsoWorkgroup"/>
  </element>
</define>
<define name="ogc-standard">
  <element name="ogc-standard">
    <attribute name="version"/>
    <attribute name="type">
      <choice>
        <value>semantic</value>
        <value>presentation</value>
      </choice>
    </attribute>
    <ref name="bibdata"/>
    <zeroOrMore>
      <ref name="termdocsource"/>
    </zeroOrMore>
    <optional>
      <ref name="misccontainer"/>
    </optional>
    <optional>
      <ref name="boilerplate"/>
    </optional>
    <ref name="preface"/>
    <oneOrMore>
      <ref name="sections"/>
    </oneOrMore>
    <zeroOrMore>
      <ref name="annex"/>
    </zeroOrMore>
    <ref name="bibliography"/>
    <zeroOrMore>
      <ref name="indexsect"/>
    </zeroOrMore>
  </element>
</define>

</grammar>