<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:latexSEamse="https://www.latex-project.org/ns/local/asmeconf" xmlns:latexSEamsej="https://www.latex-project.org/ns/local/asmejour" xmlns:luatexko="https://www.latex-project.org/ns/local/luatexko" xmlns:mitthesis="https://www.latex-project.org/ns/local/mitthesis" xmlns:latexSEplay="https://www.latex-project.org/ns/local/plays" xmlns="http://relaxng.org/ns/structure/1.0">
  <include href="latex-document.rng"/>
  <!-- LaTeX play -->
  <define name="Span" combine="choice">
    <element name="latexSEplay:SceneDescription">
      <ref name="pdf2-attributes"/>
      <attribute name="rolemaps-to">
        <value>Span</value>
      </attribute>
      <text/>
    </element>
  </define>
  <define name="Strong" combine="choice">
    <element name="latexSEplay:Speaker">
      <ref name="pdf2-attributes"/>
      <attribute name="rolemaps-to">
        <value>Strong</value>
      </attribute>
      <text/>
    </element>
  </define>
  <!-- asmeconf -->
  <define name="Div" combine="choice">
    <element name="latexSEamse:Conference_information">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="latexSEamse:Author_Affiliation">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="latexSEamse:Affiliation">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="latexSEamsej:Author_Block">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <optional>
        <attribute name="title"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="latexSEamse:Paper_number">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <optional>
        <attribute name="title"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <!-- luatexko -->
  <define name="Span" combine="choice">
    <element name="luatexko:StrikeOut">
      <ref name="pdf2-attributes"/>
      <attribute name="rolemaps-to">
        <value>Span</value>
      </attribute>
      <zeroOrMore>
        <choice>
          <text/>
          <ref name="Span"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="luatexko:Vertical">
      <ref name="pdf2-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <zeroOrMore>
        <choice>
          <ref name="text-unit"/>
          <ref name="P"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="luatexko:Horizontal">
      <ref name="pdf2-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <zeroOrMore>
        <choice>
          <ref name="text-unit"/>
          <ref name="P"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <a:documentation>mithesis</a:documentation>
    <element name="mitthesis:Author">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <optional>
        <attribute name="title"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="mitthesis:Degree">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <optional>
        <attribute name="title"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="mitthesis:Copyright">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <optional>
        <attribute name="title"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="mitthesis:Title_sig_block">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <optional>
        <attribute name="title"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="mitthesis:Nomenclature_list">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <optional>
        <attribute name="title"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="mitthesis:Abstract_title">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <optional>
        <attribute name="title"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="mitthesis:Abstract_text">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <optional>
        <attribute name="title"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="Div" combine="choice">
    <element name="mitthesis:Abstract_supervisor">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Div</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <optional>
        <attribute name="title"/>
      </optional>
      <zeroOrMore>
        <ref name="text-unit"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="Sect" combine="choice">
    <element name="mitthesis:Abstract_page">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Sect</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <optional>
        <attribute name="title"/>
      </optional>
      <zeroOrMore>
        <choice>
          <ref name="Div"/>
          <ref name="text-unit"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="Span" combine="choice">
    <element name="mitthesis:Nomenclature_entry_heading">
      <ref name="showtags-attributes"/>
      <attribute name="rolemaps-to">
        <value>Span</value>
      </attribute>
      <optional>
        <attribute name="id"/>
      </optional>
      <optional>
        <attribute name="title"/>
      </optional>
      <zeroOrMore>
        <choice>
          <ref name="Em"/>
          <ref name="Span"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
</grammar>
