<?xml version='1.0'?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
  ns="http://www.iana.org/assignments">

  <include href="../_support/iana-registry.rng"/>

  <define name="value_description_xref">
    <element name="registry">
      <ref name="registryMeta"/>
      <zeroOrMore>
        <element name="record">
          <optional>
            <attribute name="date"><ref name="genericDate"/></attribute>
          </optional>
          <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
          <element name="value"><ref name="genericRange"/></element>
          <element name="description"><text/></element>
          <ref name="references"/>
        </element>
      </zeroOrMore>
    </element>
  </define>

  <define name="value_description_section_xref">
    <element name="registry">
      <ref name="registryMeta"/>
      <zeroOrMore>
        <element name="record">
          <optional>
            <attribute name="date"><ref name="genericDate"/></attribute>
          </optional>
          <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
          <element name="value"><ref name="genericRange"/></element>
          <element name="description"><text/></element>
          <optional><element name="section"><text/></element></optional>
          <ref name="references"/>
        </element>
      </zeroOrMore>
    </element>
  </define>

  <define name="value_description_note_xref">
    <element name="registry">
      <ref name="registryMeta"/>
      <zeroOrMore>
        <element name="record">
          <optional>
            <attribute name="date"><ref name="genericDate"/></attribute>
          </optional>
          <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
          <element name="value"><ref name="genericRange"/></element>
          <element name="description"><text/></element>
          <optional><element name="note"><text/></element></optional>
          <ref name="references"/>
        </element>
      </zeroOrMore>
    </element>
  </define>

  <start>
    <element name="registry">
      <ref name="registryMeta"/>
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        
        <element name="registry">
          <ref name="registryMeta"/>
          <zeroOrMore>
            <element name="record">
              <optional>
               <attribute name="date"><ref name="genericDate"/></attribute>
              </optional>
              <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
              <element name="value"><ref name="genericRange"/></element>
              <ref name="references"/>
            </element>
          </zeroOrMore>
        </element>
        <ref name="value_description_xref"/>
        <ref name="value_description_section_xref"/>
        <ref name="value_description_section_xref"/>
        <ref name="value_description_xref"/>
      </element>
      
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        <ref name="value_description_section_xref"/>
        <ref name="value_description_section_xref"/>
      </element>
      
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        <ref name="value_description_xref"/>
      </element>
      
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        
        <element name="registry">
          <ref name="registryMeta"/>
          <zeroOrMore>
            <element name="record">
              <optional>
               <attribute name="date"><ref name="genericDate"/></attribute>
              </optional>
              <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
              <element name="value"><ref name="genericRange"/></element>
              <element name="description"><text/></element>
              <optional><element name="note"><text/></element></optional>
              <optional><element name="length"><data type="nonNegativeInteger"/></element></optional>
              <ref name="references"/>
            </element>
          </zeroOrMore>
        </element>
      </element>
      
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        <ref name="value_description_xref"/>
      </element>
      
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        <ref name="value_description_xref"/>
      </element>
      
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        <ref name="value_description_xref"/>
        <ref name="value_description_xref"/>
      </element>
      
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        <ref name="value_description_xref"/>
      </element>
      
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        <ref name="value_description_xref"/>
      </element>
      
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><ref name="genericRange"/></element>
            <element name="description"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        <ref name="value_description_xref"/>
        <ref name="value_description_xref"/>
        <ref name="value_description_xref"/>
        <ref name="value_description_xref"/>
      </element>
      
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        <ref name="value_description_xref"/>
      </element>
      
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        <ref name="value_description_xref"/>
        <ref name="value_description_xref"/>
      </element>
      
      <element name="registry">
        <ref name="registryMeta"/>
        <zeroOrMore>
          <element name="record">
            <optional>
             <attribute name="date"><ref name="genericDate"/></attribute>
            </optional>
            <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
            <element name="value"><text/></element>
            <ref name="references"/>
          </element>
        </zeroOrMore>
        
        <element name="registry">
          <ref name="registryMeta"/>
          <zeroOrMore>
            <element name="record">
              <optional>
                <attribute name="date"><ref name="genericDate"/></attribute>
              </optional>
              <optional>
              <attribute name="updated"><ref name="genericDate"/></attribute>
            </optional>
              <element name="value"><ref name="genericRange"/></element>
              <element name="description"><text/></element>
              <ref name="references"/>
            </element>
          </zeroOrMore>
          <ref name="value_description_note_xref"/>
          <ref name="value_description_note_xref"/>
        </element>
      </element>
      
      <ref name="value_description_xref"/>
      <ref name="value_description_xref"/>
      <ref name="value_description_xref"/>
      <ref name="value_description_xref"/>
      <ref name="value_description_xref"/>
      <ref name="value_description_xref"/>
      <ref name="value_description_xref"/> <!-- SAKKE params -->
      <ref name="value_description_xref"/> <!-- ID Scheme -->
      <ref name="people"/>
    </element>
  </start>

</grammar>
