Listing of graphmeta.rng

<?xml version="1.0" encoding="UTF-8"?>
<grammar  xmlns:g="http://emegir.info/gdl"
           xmlns="http://relaxng.org/ns/structure/1.0"
          datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" >
  <define name="g.meta">
    <optional>
      <ref name="break"/>
    </optional>
    <optional>
      <ref name="status.flags"/>
    </optional>
    <optional>
      <ref name="status.spans"/>
    </optional>
    <optional>
      <ref name="paleography.attr"/>
    </optional>
    <optional>
      <ref name="linguistic.attr"/>
    </optional>
    <optional>
      <ref name="proximity.attr"/>
    </optional>
    <optional>
      <ref name="opener"/>
    </optional>
    <optional>
      <ref name="closer"/>
    </optional>
    <optional>
      <ref name="hsqb_o"/>
    </optional>
    <optional>
      <ref name="hsqb_c"/>
    </optional>
    <optional>
      <ref name="emhyph"/>
    </optional>
    <optional>
      <ref name="varnum"/>
    </optional>
    <optional>
      <ref name="utf8"/>
    </optional>
    <optional>
      <ref name="delim"/>
    </optional>
  </define>
  <define name="break">
    <attribute name="g:break">
      <choice>
        <value>damaged</value>
        <value>missing</value>
      </choice>
    </attribute>
  </define>
  <define name="opener">
    <attribute name="g:o"/>
  </define>
  <define name="closer">
    <attribute name="g:c"/>
  </define>
  <define name="hsqb_o">
    <attribute name="g:ho">
      <value>1</value>
    </attribute>
  </define>
  <define name="hsqb_c">
    <attribute name="g:hc">
      <value>1</value>
    </attribute>
  </define>
  <define name="emhyph">
    <attribute name="g:em">
      <value>1</value>
    </attribute>
  </define>
  <define name="utf8">
    <attribute name="g:utf8"/>
  </define>
  <define name="delim">
    <attribute name="g:delim"/>
  </define>
  <define name="varnum">
    <optional>
      <attribute name="g:varo"/>
    </optional>
    <optional>
      <attribute name="g:vari"/>
    </optional>
    <optional>
      <attribute name="g:varc"/>
    </optional>
  </define>
  <define name="status.flags">
    <optional>
      <attribute name="g:collated">
        <data type="boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="g:queried">
        <data type="boolean"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="g:remarked">
        <data type="boolean"/>
      </attribute>
    </optional>
  </define>
  <define name="gloss">
    <choice>
      <ref name="det"/>
      <ref name="glo"/>
    </choice>
  </define>
  <define name="pos">
    <attribute name="g:pos">
      <choice>
        <value>pre</value>
        <value>post</value>
        <value>free</value>
      </choice>
    </attribute>
  </define>
  <define name="det">
    <element name="g:d">
      <ref name="pos"/>
      <ref name="dtyp"/>
      <optional>
        <ref name="delim"/>
      </optional>
      <optional>
        <ref name="emhyph"/>
      </optional>
      <choice>
        <ref name="dingir"/>
        <ref name="mister"/>
        <zeroOrMore>
          <ref name="word.content"/>
        </zeroOrMore>
      </choice>
    </element>
  </define>
  <define name="dtyp">
    <attribute name="g:role">
      <choice>
        <value>phonetic</value>
        <value>semantic</value>
      </choice>
    </attribute>
  </define>
  <define name="glo">
    <element name="g:gloss">
      <attribute name="g:type">
        <choice>
          <value>lang</value>
          <value>text</value>
        </choice>
      </attribute>
      <optional>
        <ref name="delim"/>
      </optional>
      <ref name="pos"/>
      <ref name="words"/>
    </element>
  </define>
  <define name="status.spans">
    <attribute name="g:status">
      <choice>
        <value>ok</value>
        <value>erased</value>
        <value>excised</value>
        <value>implied</value>
        <value>maybe</value>
        <value>supplied</value>
      </choice>
    </attribute>
  </define>
  <define name="paleography.attr">
    <attribute name="g:script">
      <data type="NCName"/>
    </attribute>
  </define>
  <define name="linguistic.attr">
    <optional>
      <attribute name="xml:lang">
        <data type="language"/>
      </attribute>
    </optional>
    <!--  attribute g:rws         { "emegir" | "emesal" | "udgalnun" }? , -->
    <choice>
      <attribute name="g:role">
        <choice>
          <value>sign</value>
          <value>ideo</value>
          <value>num</value>
          <value>syll</value>
        </choice>
      </attribute>
      <group>
        <attribute name="g:role">
          <value>logo</value>
        </attribute>
        <attribute name="g:logolang">
          <data type="language"/>
        </attribute>
      </group>
    </choice>
  </define>
  <define name="proximity.attr">
    <attribute name="g:prox">
      <data type="integer"/>
    </attribute>
  </define>
  <define name="nongrapheme">
    <element name="g:x">
      <choice>
        <attribute name="g:type">
          <choice>
            <value>newline</value>
            <value>user</value>
          </choice>
        </attribute>
        <group>
          <attribute name="g:type">
            <value>ellipsis</value>
          </attribute>
          <ref name="status.spans"/>
          <optional>
            <ref name="opener"/>
          </optional>
          <optional>
            <ref name="closer"/>
          </optional>
          <optional>
            <ref name="break"/>
          </optional>
        </group>
      </choice>
      <optional>
        <ref name="delim"/>
      </optional>
      <optional>
        <text/>
      </optional>
      <optional>
        <ref name="varnum"/>
      </optional>
    </element>
  </define>
</grammar>