<?xml version=“1.0” encoding=“UTF-8”?> <grammar ns=“www.metanorma.org/ns/itu” 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="itu"/>
  </start>
  <define name="ol">
    <element name="ol">
      <attribute name="id">
        <data type="ID"/>
      </attribute>
      <optional>
        <attribute name="class">
          <value>steps</value>
        </attribute>
      </optional>
      <oneOrMore>
        <ref name="li"/>
      </oneOrMore>
      <zeroOrMore>
        <ref name="note"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="DocumentType">
    <choice>
      <value>recommendation</value>
      <value>recommendation-supplement</value>
      <value>recommendation-amendment</value>
      <value>recommendation-corrigendum</value>
      <value>recommendation-errata</value>
      <value>recommendation-annex</value>
      <value>focus-group</value>
      <value>implementers-guide</value>
      <value>technical-paper</value>
      <value>technical-report</value>
      <value>joint-itu-iso-iec</value>
      <value>resolution</value>
      <value>service-publication</value>
      <value>handbook</value>
      <value>question</value>
    </choice>
  </define>
  <define name="editorialgroup">
    <element name="editorialgroup">
      <ref name="bureau"/>
      <optional>
        <ref name="group"/>
      </optional>
      <optional>
        <ref name="subgroup"/>
      </optional>
      <optional>
        <ref name="workgroup"/>
      </optional>
    </element>
  </define>
  <define name="structuredidentifier">
    <element name="structuredidentifier">
      <ref name="bureau"/>
      <element name="docnumber">
        <text/>
      </element>
      <optional>
        <element name="annexid">
          <text/>
        </element>
      </optional>
      <optional>
        <element name="amendment">
          <data type="int"/>
        </element>
      </optional>
      <optional>
        <element name="corrigendum">
          <data type="int"/>
        </element>
      </optional>
    </element>
  </define>
  <define name="BibDataExtensionType">
    <optional>
      <ref name="doctype"/>
    </optional>
    <optional>
      <ref name="docsubtype"/>
    </optional>
    <ref name="editorialgroup"/>
    <zeroOrMore>
      <ref name="ics"/>
    </zeroOrMore>
    <optional>
      <ref name="recommendationstatus"/>
    </optional>
    <optional>
      <ref name="ipnoticereceived"/>
    </optional>
    <optional>
      <ref name="meeting"/>
    </optional>
    <optional>
      <ref name="meeting-place"/>
    </optional>
    <optional>
      <ref name="meeting-date"/>
    </optional>
    <optional>
      <ref name="intended-type"/>
    </optional>
    <optional>
      <ref name="ext_source"/>
    </optional>
    <optional>
      <ref name="structuredidentifier"/>
    </optional>
  </define>
  <define name="preface">
    <element name="preface">
      <oneOrMore>
        <choice>
          <ref name="content"/>
          <ref name="abstract"/>
          <ref name="foreword"/>
          <ref name="introduction"/>
          <ref name="acknowledgements"/>
          <ref name="clause"/>
        </choice>
      </oneOrMore>
    </element>
  </define>
  <define name="Clause-Section">
    <optional>
      <attribute name="id">
        <data type="ID"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="language"/>
    </optional>
    <optional>
      <attribute name="script"/>
    </optional>
    <optional>
      <attribute name="inline-header">
        <data type="boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="obligation">
        <choice>
          <value>normative</value>
          <value>informative</value>
        </choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="type"/>
    </optional>
    <optional>
      <attribute name="unnumbered">
        <data type="boolean"/>
      </attribute>
    </optional>
    <optional>
      <ref name="section-title"/>
    </optional>
    <group>
      <choice>
        <group>
          <zeroOrMore>
            <ref name="BasicBlock"/>
          </zeroOrMore>
          <zeroOrMore>
            <ref name="note"/>
          </zeroOrMore>
        </group>
        <ref name="amend"/>
      </choice>
      <zeroOrMore>
        <choice>
          <ref name="clause-subsection"/>
          <ref name="terms"/>
          <ref name="definitions"/>
        </choice>
      </zeroOrMore>
    </group>
  </define>
</include>
<define name="meeting">
  <element name="meeting">
    <optional>
      <attribute name="acronym"/>
    </optional>
    <text/>
  </element>
</define>
<define name="meeting-place">
  <element name="meeting-place">
    <text/>
  </element>
</define>
<define name="meeting-date">
  <element name="meeting-date">
    <choice>
      <group>
        <element name="from">
          <ref name="ISO8601Date"/>
        </element>
        <optional>
          <element name="to">
            <ref name="ISO8601Date"/>
          </element>
        </optional>
      </group>
      <element name="on">
        <ref name="ISO8601Date"/>
      </element>
    </choice>
  </element>
</define>
<define name="intended-type">
  <element name="intended-type">
    <choice>
      <value>R</value>
      <value>C</value>
      <value>TD</value>
    </choice>
  </element>
</define>
<define name="ext_source">
  <element name="source">
    <text/>
  </element>
</define>
<define name="ipnoticereceived">
  <element name="ip-notice-received">
    <data type="boolean"/>
  </element>
</define>
<define name="recommendationstatus">
  <element name="recommendationstatus">
    <element name="from">
      <ref name="ISO8601Date"/>
    </element>
    <element name="to">
      <ref name="ISO8601Date"/>
    </element>
    <optional>
      <ref name="approvalstage"/>
    </optional>
  </element>
</define>
<define name="approvalstage">
  <element name="approvalstage">
    <attribute name="process">
      <choice>
        <value>tap</value>
        <value>aap</value>
      </choice>
    </attribute>
    <choice>
      <value>determined</value>
      <value>in-force</value>
      <value>a</value>
      <value>lc</value>
      <value>ac</value>
      <value>lj</value>
      <value>aj</value>
      <value>na</value>
      <value>ar</value>
      <value>ri</value>
      <value>at</value>
      <value>sg</value>
      <value>c</value>
      <value>tap</value>
    </choice>
  </element>
</define>
<define name="bureau">
  <element name="bureau">
    <choice>
      <value>T</value>
      <value>D</value>
      <value>R</value>
    </choice>
  </element>
</define>
<define name="group">
  <element name="group">
    <ref name="ItuGroup"/>
  </element>
</define>
<define name="subgroup">
  <element name="subgroup">
    <ref name="ItuGroup"/>
  </element>
</define>
<define name="ItuGroup">
  <optional>
    <attribute name="type">
      <choice>
        <value>tsag</value>
        <value>study-group</value>
        <value>work-group</value>
      </choice>
    </attribute>
  </optional>
  <ref name="tname"/>
  <optional>
    <ref name="groupacronym"/>
  </optional>
  <optional>
    <ref name="groupperiod"/>
  </optional>
</define>
<define name="groupacronym">
  <element name="acronym">
    <text/>
  </element>
</define>
<define name="groupperiod">
  <element name="period">
    <ref name="groupperiodstart"/>
    <optional>
      <ref name="groupperiodend"/>
    </optional>
  </element>
</define>
<define name="groupperiodstart">
  <element name="start">
    <data type="gYear"/>
  </element>
</define>
<define name="groupperiodend">
  <element name="end">
    <data type="gYear"/>
  </element>
</define>
<define name="workgroup">
  <element name="workgroup">
    <ref name="ItuGroup"/>
  </element>
</define>
<define name="itu">
  <element name="itu-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>