Listing of words.rng

<?xml version="1.0" encoding="UTF-8"?>
<grammar  xmlns:syn="http://emegir.info/syntax"  xmlns:g="http://emegir.info/gdl"
           xmlns:n="http://emegir.info/norm"
           xmlns="http://relaxng.org/ns/structure/1.0"
          datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" >
  <define name="word.content">
    <choice>
      <text/>
      <ref name="group"/>
      <ref name="grapheme"/>
      <ref name="nongrapheme"/>
    </choice>
  </define>
  <define name="words">
    <zeroOrMore>
      <choice>
        <ref name="word"/>
        <ref name="sword.head"/>
        <ref name="sword.cont"/>
        <ref name="nonword"/>
        <ref name="nongrapheme"/>
      </choice>
    </zeroOrMore>
  </define>
  <define name="word">
    <element name="g:w">
      <ref name="word.attributes"/>
      <zeroOrMore>
        <ref name="word.content"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="sword.head">
    <element name="g:w">
      <attribute name="headform"/>
      <attribute name="contrefs">
        <data type="IDREFS"/>
      </attribute>
      <ref name="word.attributes"/>
      <zeroOrMore>
        <ref name="word.content"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="sword.cont">
    <element name="g:swc">
      <attribute name="xml:id">
        <data type="ID"/>
      </attribute>
      <attribute name="xml:lang">
        <data type="language"/>
      </attribute>
      <optional>
        <attribute name="form"/>
      </optional>
      <attribute name="headref">
        <data type="IDREF"/>
      </attribute>
      <attribute name="swc-final">
        <choice>
          <value>1</value>
          <value>0</value>
        </choice>
      </attribute>
      <optional>
        <ref name="delim"/>
      </optional>
      <zeroOrMore>
        <ref name="word.content"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="word.attributes">
    <attribute name="xml:id">
      <data type="ID"/>
    </attribute>
    <attribute name="xml:lang">
      <data type="language"/>
    </attribute>
    <optional>
      <attribute name="form"/>
    </optional>
    <optional>
      <attribute name="lemma"/>
    </optional>
    <optional>
      <attribute name="guide"/>
    </optional>
    <optional>
      <attribute name="sense"/>
    </optional>
    <optional>
      <attribute name="pos"/>
    </optional>
    <optional>
      <attribute name="morph"/>
    </optional>
    <optional>
      <attribute name="base"/>
    </optional>
    <optional>
      <attribute name="norm"/>
    </optional>
    <optional>
      <ref name="delim"/>
    </optional>
    <zeroOrMore>
      <ref name="syntax.attributes"/>
    </zeroOrMore>
  </define>
  <define name="nonword">
    <element name="g:nonw">
      <optional>
        <attribute name="xml:id">
          <data type="ID"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="xml:lang">
          <data type="language"/>
        </attribute>
      </optional>
      <optional>
        <attribute name="type">
          <choice>
            <value>comment</value>
            <value>dollar</value>
            <value>excised</value>
            <value>punct</value>
            <value>vari</value>
          </choice>
        </attribute>
      </optional>
      <optional>
        <attribute name="form"/>
      </optional>
      <optional>
        <attribute name="lemma"/>
      </optional>
      <zeroOrMore>
        <ref name="syntax.attributes"/>
      </zeroOrMore>
      <optional>
        <ref name="break"/>
      </optional>
      <optional>
        <ref name="status.flags"/>
      </optional>
      <optional>
        <ref name="status.spans"/>
      </optional>
      <optional>
        <ref name="opener"/>
      </optional>
      <optional>
        <ref name="closer"/>
      </optional>
      <optional>
        <ref name="delim"/>
      </optional>
      <zeroOrMore>
        <ref name="word.content"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="group">
    <element name="g:gg">
      <attribute name="g:type">
        <choice>
          <value>correction</value>
          <value>alternation</value>
          <value>group</value>
          <value>reordering</value>
          <value>ligature</value>
        </choice>
      </attribute>
      <ref name="g.meta"/>
      <oneOrMore>
        <choice>
          <ref name="group"/>
          <ref name="grapheme"/>
        </choice>
      </oneOrMore>
    </element>
  </define>
  <define name="groupgroup">
    <element name="g:gg">
      <attribute name="g:type">
        <value>group</value>
      </attribute>
      <ref name="g.meta"/>
      <oneOrMore>
        <choice>
          <ref name="group"/>
          <ref name="grapheme"/>
          <ref name="normword"/>
        </choice>
      </oneOrMore>
    </element>
  </define>
  <define name="syntax.attributes">
    <choice>
      <attribute name="syn:brk-before"/>
      <attribute name="syn:brk-after"/>
      <attribute name="syn:ub-before"/>
      <attribute name="syn:ub-after"/>
    </choice>
  </define>
  <define name="normword">
    <element name="n:w">
      <ref name="word.attributes"/>
      <optional>
        <ref name="break"/>
      </optional>
      <optional>
        <ref name="status.flags"/>
      </optional>
      <optional>
        <ref name="status.spans"/>
      </optional>
      <optional>
        <ref name="opener"/>
      </optional>
      <optional>
        <ref name="closer"/>
      </optional>
      <optional>
        <ref name="hsqb_o"/>
      </optional>
      <optional>
        <ref name="hsqb_c"/>
      </optional>
      <zeroOrMore>
        <choice>
          <text/>
          <ref name="gloss"/>
          <ref name="nongrapheme"/>
        </choice>
      </zeroOrMore>
      <zeroOrMore>
        <ref name="syntax.attributes"/>
      </zeroOrMore>
    </element>
  </define>
</grammar>