<?xml version="1.0" encoding="UTF-8"?>
<grammar ns="http://www.isotc211.org/2005/gmx" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <start>
    <element name="CT_CodelistCatalogue">
      <optional>
        <attribute name="xsi:schemaLocation"/>
      </optional>
      <element name="name">
        <ref name="gco.CharacterString"/>
      </element>
      <element name="scope">
        <ref name="gco.CharacterString"/>
      </element>
      <element name="fieldOfApplication">
        <ref name="gco.CharacterString"/>
      </element>
      <element name="versionNumber">
        <ref name="gco.CharacterString"/>
      </element>
      <element name="versionDate">
        <choice>
          <element name="gco:Date">
            <data type="date"/>
          </element>
          <element name="gco:DateTime">
            <data type="dateTime"/>
          </element>
        </choice>
      </element>
      <optional>
        <element name="language">
          <element name="gmd:LanguageCode">
            <attribute name="codeList">
              <data type="anyURI"/>
            </attribute>
            <attribute name="codeListValue">
              <data type="NCName"/>
            </attribute>
            <text/>
          </element>
        </element>
      </optional>
      <optional>
        <element name="characterSet">
          <element name="gmd:MD_CharacterSetCode">
            <attribute name="codeList">
              <data type="anyURI"/>
            </attribute>
            <attribute name="codeListValue">
              <data type="NCName"/>
            </attribute>
            <text/>
          </element>
        </element>
      </optional>
      <oneOrMore>
        <element name="codelistItem">
          <element name="CodeListDictionary">
            <attribute name="gml:id">
              <data type="NCName"/>
            </attribute>
            <ref name="gml.description"/>
            <ref name="gml.identifier"/>
            <oneOrMore>
              <element name="codeEntry">
                <element name="CodeDefinition">
                  <attribute name="gml:id">
                    <data type="NCName"/>
                  </attribute>
                  <ref name="gml.description"/>
                  <ref name="gml.identifier"/>
                </element>
              </element>
            </oneOrMore>
          </element>
        </element>
      </oneOrMore>
    </element>
  </start>
  <define name="gco.CharacterString">
    <element name="gco:CharacterString">
      <text/>
    </element>
  </define>
  <define name="gml.description">
    <element name="gml:description">
      <text/>
    </element>
  </define>
  <define name="gml.identifier">
    <element name="gml:identifier">
      <attribute name="codeSpace"/>
      <data type="NMTOKEN"/>
    </element>
  </define>
</grammar>
