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

<!-- default namespace = "https://www.metanorma.com/ns/bsi" -->
<include href="isostandard.rng">
  <start>
    <ref name="bsi-standard"/>
  </start>
  <define name="DocumentType">
    <choice>
      <value>british-standard</value>
      <value>draft-for-development</value>
      <value>published-document</value>
      <value>privately-subscribed-standard</value>
      <value>publicly-available-specification</value>
      <value>flex-standard</value>
      <value>international-standard</value>
      <value>technical-specification</value>
      <value>technical-report</value>
      <value>guide</value>
      <value>international-workshop-agreement</value>
      <value>industry-technical-agreement</value>
      <value>standard</value>
      <value>european-workshop-agreement</value>
    </choice>
  </define>
  <define name="DocumentSubtype">
    <choice>
      <value>specification</value>
      <value>method-of-test</value>
      <value>method-of-specifying</value>
      <value>vocabulary</value>
      <value>code-of-practice</value>
    </choice>
  </define>
  <define name="BibDataExtensionType">
    <ref name="doctype"/>
    <optional>
      <ref name="docsubtype"/>
    </optional>
    <ref name="editorialgroup"/>
    <zeroOrMore>
      <ref name="ics"/>
    </zeroOrMore>
    <ref name="structuredidentifier"/>
    <optional>
      <ref name="stagename"/>
    </optional>
    <zeroOrMore>
      <ref name="coverimages"/>
    </zeroOrMore>
  </define>
  <define name="admonition">
    <element name="admonition">
      <attribute name="type">
        <ref name="AdmonitionType"/>
      </attribute>
      <optional>
        <attribute name="class"/>
      </optional>
      <attribute name="id">
        <data type="ID"/>
      </attribute>
      <optional>
        <attribute name="target">
          <data type="IDREF"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="uri">
          <data type="anyURI"/>
        </attribute>
      </optional>
      <optional>
        <ref name="tname"/>
      </optional>
      <zeroOrMore>
        <ref name="paragraph-with-footnote"/>
      </zeroOrMore>
      <zeroOrMore>
        <ref name="note"/>
      </zeroOrMore>
    </element>
  </define>
</include>
<!-- end overrides -->
<define name="AdmonitionType" combine="choice">
  <value>commentary</value>
</define>
<define name="coverimages">
  <element name="coverimages">
    <oneOrMore>
      <ref name="image"/>
    </oneOrMore>
  </element>
</define>
<!--
  We display the Normative References between scope and terms; but to keep the
  grammar simple, we keep the references together
-->
<define name="bsi-standard">
  <element name="bsi-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>