<?xml version=“1.0” encoding=“UTF-8”?> <grammar 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="isostandard.rng">
  <start>
    <ref name="sample-standard"/>
  </start>
  <define name="language">
    <element name="language">
      <value>en</value>
    </element>
  </define>
  <define name="docidentifier">
    <element name="docidentifier">
      <text/>
    </element>
  </define>
  <define name="btitle">
    <element name="title">
      <ref name="FormattedString"/>
    </element>
  </define>
  <define name="figure">
    <element name="figure">
      <attribute name="id">
        <data type="ID"/>
      </attribute>
      <optional>
        <ref name="source"/>
      </optional>
      <optional>
        <ref name="tname"/>
      </optional>
      <choice>
        <oneOrMore>
          <ref name="figure"/>
        </oneOrMore>
        <group>
          <choice>
            <zeroOrMore>
              <ref name="TextElement"/>
            </zeroOrMore>
            <ref name="pre"/>
          </choice>
          <zeroOrMore>
            <ref name="note"/>
          </zeroOrMore>
          <optional>
            <ref name="dl"/>
          </optional>
        </group>
      </choice>
    </element>
  </define>
  <define name="status">
    <element name="status">
      <choice>
        <value>proposal</value>
        <value>working-draft</value>
        <value>committee-draft</value>
        <value>draft-standard</value>
        <value>final-draft</value>
        <value>published</value>
        <value>withdrawn</value>
        <ref name="LocalizedString"/>
      </choice>
    </element>
  </define>
  <!-- TextElement |= keyword -->
  <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"/>
      <ref name="keyword"/>
    </choice>
  </define>
  <define name="BibItemType" combine="choice">
    <choice>
      <value>policy-and-procedures</value>
      <value>best-practices</value>
      <value>supporting-document</value>
      <value>report</value>
      <value>legal</value>
      <value>directives</value>
      <value>proposal</value>
      <value>standard</value>
    </choice>
  </define>
  <define name="editorialgroup">
    <element name="editorialgroup">
      <ref name="committee"/>
    </element>
  </define>
  <define name="BibData">
    <optional>
      <attribute name="type">
        <ref name="BibItemType"/>
      </attribute>
    </optional>
    <oneOrMore>
      <ref name="btitle"/>
    </oneOrMore>
    <optional>
      <ref name="formattedref"/>
    </optional>
    <zeroOrMore>
      <ref name="bsource"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="docidentifier"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="bdate"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="contributor"/>
    </zeroOrMore>
    <optional>
      <ref name="edition"/>
    </optional>
    <zeroOrMore>
      <ref name="biblionote"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="language"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="script"/>
    </zeroOrMore>
    <zeroOrMore>
      <ref name="abstract"/>
    </zeroOrMore>
    <optional>
      <ref name="status"/>
    </optional>
    <ref name="copyright"/>
    <zeroOrMore>
      <ref name="docrelation"/>
    </zeroOrMore>
    <ref name="editorialgroup"/>
    <zeroOrMore>
      <ref name="ics"/>
    </zeroOrMore>
    <optional>
      <ref name="security"/>
    </optional>
  </define>
</include>
<define name="committee">
  <element name="committee">
    <attribute name="type">
      <choice>
        <value>technical</value>
        <value>provisional</value>
      </choice>
    </attribute>
    <text/>
  </element>
</define>
<define name="pre">
  <element name="pre">
    <text/>
  </element>
</define>
<define name="keyword">
  <element name="keyword">
    <text/>
  </element>
</define>
<define name="security">
  <element name="security">
    <text/>
  </element>
</define>
<define name="sample-standard">
  <element name="sample-standard">
    <ref name="bibdata"/>
    <optional>
      <ref name="version"/>
    </optional>
    <zeroOrMore>
      <ref name="termdocsource"/>
    </zeroOrMore>
    <ref name="preface"/>
    <oneOrMore>
      <ref name="sections"/>
    </oneOrMore>
    <zeroOrMore>
      <ref name="annex"/>
    </zeroOrMore>
    <ref name="bibliography"/>
  </element>
</define>

</grammar>