<?xml version=“1.0” encoding=“UTF-8”?> <grammar ns=“www.metanorma.com/ns/unece” xmlns=“relaxng.org/ns/structure/1.0” datatypeLibrary=“www.w3.org/2001/XMLSchema-datatypes”>

<!--
  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="unece-standard"/>
  </start>
  <define name="TextElement">
    <choice>
      <text/>
      <ref name="em"/>
      <ref name="eref"/>
      <ref name="strong"/>
      <ref name="stem"/>
      <ref name="sub"/>
      <ref name="sup"/>
      <ref name="tt"/>
      <ref name="strike"/>
      <ref name="smallcap"/>
      <ref name="xref"/>
      <ref name="br"/>
      <ref name="hyperlink"/>
      <ref name="hr"/>
      <ref name="pagebreak"/>
      <ref name="bookmark"/>
    </choice>
  </define>
  <define name="admonition">
    <element name="admonition">
      <attribute name="id">
        <data type="ID"/>
      </attribute>
      <optional>
        <attribute name="unnumbered">
          <data type="boolean"/>
        </attribute>
      </optional>
      <attribute name="type">
        <choice>
          <value>danger</value>
          <value>caution</value>
          <value>warning</value>
          <value>important</value>
          <value>safety precautions</value>
        </choice>
      </attribute>
      <optional>
        <ref name="tname"/>
      </optional>
      <oneOrMore>
        <choice>
          <ref name="paragraph-with-footnote"/>
          <ref name="table"/>
          <ref name="formula"/>
          <ref name="ol"/>
          <ref name="ul"/>
          <ref name="dl"/>
          <ref name="figure"/>
          <ref name="quote"/>
          <ref name="sourcecode"/>
          <ref name="example"/>
          <ref name="review"/>
        </choice>
      </oneOrMore>
      <zeroOrMore>
        <ref name="note"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="DocumentType">
    <choice>
      <value>recommendation</value>
      <value>plenary</value>
      <value>addendum</value>
      <value>communication</value>
      <value>corrigendum</value>
      <value>reissue</value>
      <value>agenda</value>
      <value>budgetary</value>
      <value>sec-gen-notes</value>
      <value>expert-report</value>
      <value>resolution</value>
    </choice>
  </define>
  <define name="editorialgroup">
    <element name="editorialgroup">
      <oneOrMore>
        <ref name="committee"/>
      </oneOrMore>
    </element>
  </define>
  <define name="sections">
    <element name="sections">
      <oneOrMore>
        <ref name="clause"/>
      </oneOrMore>
    </element>
  </define>
  <define name="BibDataExtensionType">
    <optional>
      <ref name="doctype"/>
    </optional>
    <zeroOrMore>
      <ref name="submissionlanguage"/>
    </zeroOrMore>
    <ref name="editorialgroup"/>
    <zeroOrMore>
      <ref name="ics"/>
    </zeroOrMore>
    <optional>
      <ref name="distribution"/>
    </optional>
    <optional>
      <ref name="session"/>
    </optional>
  </define>
  <define name="preface">
    <element name="preface">
      <optional>
        <ref name="abstract"/>
      </optional>
      <optional>
        <ref name="foreword"/>
      </optional>
      <optional>
        <ref name="introduction"/>
      </optional>
    </element>
  </define>
  <define name="abstract">
    <element name="abstract">
      <ref name="Basic-Section"/>
    </element>
  </define>
</include>
<define name="session">
  <element name="session">
    <optional>
      <ref name="session-number"/>
    </optional>
    <optional>
      <ref name="session-date"/>
    </optional>
    <zeroOrMore>
      <ref name="item-number"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="item-name"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="subitem-name"/>
    </zeroOrMore>
    <optional>
      <ref name="collaborator"/>
    </optional>
    <optional>
      <ref name="agenda-id"/>
    </optional>
    <optional>
      <ref name="item-footnote"/>
    </optional>
  </element>
</define>
<define name="committee">
  <element name="committee">
    <text/>
  </element>
</define>
<define name="session-number">
  <element name="number">
    <text/>
  </element>
</define>
<define name="session-date">
  <element name="session-date">
    <data type="date"/>
  </element>
</define>
<define name="item-number">
  <element name="item-number">
    <text/>
  </element>
</define>
<define name="collaborator">
  <element name="collaborator">
    <text/>
  </element>
</define>
<define name="agenda-id">
  <element name="agenda-id">
    <text/>
  </element>
</define>
<define name="item-name">
  <element name="item-name">
    <text/>
  </element>
</define>
<define name="subitem-name">
  <element name="subitem-name">
    <text/>
  </element>
</define>
<define name="item-footnote">
  <element name="item-footnote">
    <text/>
  </element>
</define>
<define name="submissionlanguage">
  <element name="submissionlanguage">
    <text/>
  </element>
</define>
<define name="distribution">
  <element name="distribution">
    <choice>
      <value>general</value>
      <value>limited</value>
      <value>restricted</value>
    </choice>
  </element>
</define>
<define name="unece-standard">
  <element name="unece-standard">
    <ref name="bibdata"/>
    <optional>
      <ref name="boilerplate"/>
    </optional>
    <ref name="preface"/>
    <oneOrMore>
      <ref name="sections"/>
    </oneOrMore>
    <zeroOrMore>
      <ref name="annex"/>
    </zeroOrMore>
  </element>
</define>

</grammar>