<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.opengis.net/gml" elementFormDefault="qualified" version="3.2.0" finalDefault="" blockDefault="" attributeFormDefault="unqualified">
    <annotation>
        <appinfo source="urn:opengis:specification:gml:schema-xsd:dictionary:v3.2.0">dictionary.xsd</appinfo>
        <documentation>see GML Clause 15</documentation>
    </annotation>
    <include schemaLocation="gmlBase.xsd"/>
    <element name="Definition" type="gml:DefinitionType" substitutionGroup="gml:AbstractGML" nillable="false" abstract="false"/>
    <complexType name="DefinitionBaseType" mixed="false" abstract="false">
        <complexContent>
            <restriction base="gml:AbstractGMLType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
                    <element ref="gml:description" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <element ref="gml:descriptionReference" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <element ref="gml:identifier" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <element ref="gml:name" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
                </sequence>
                <attribute ref="gml:id" use="required"/>
            </restriction>
        </complexContent>
    </complexType>
    <complexType name="DefinitionType" mixed="false" abstract="false">
        <complexContent>
            <extension base="gml:DefinitionBaseType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element ref="gml:remarks" minOccurs="0" maxOccurs="1" nillable="false"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <element name="remarks" type="string" nillable="false" abstract="false"/>
    <element name="Dictionary" type="gml:DictionaryType" substitutionGroup="gml:Definition" nillable="false" abstract="false"/>
    <element name="DefinitionCollection" type="gml:DictionaryType" substitutionGroup="gml:Definition" nillable="false" abstract="false"/>
    <complexType name="DictionaryType" mixed="false" abstract="false">
        <complexContent>
            <extension base="gml:DefinitionType">
                <choice minOccurs="0" maxOccurs="unbounded">
                    <element ref="gml:dictionaryEntry" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <element ref="gml:indirectEntry" minOccurs="1" maxOccurs="1" nillable="false"/>
                </choice>
                <attributeGroup ref="gml:AggregationAttributeGroup"/>
            </extension>
        </complexContent>
    </complexType>
    <element name="dictionaryEntry" type="gml:DictionaryEntryType" nillable="false" abstract="false"/>
    <element name="definitionMember" type="gml:DictionaryEntryType" substitutionGroup="gml:dictionaryEntry" nillable="false" abstract="false"/>
    <complexType name="DictionaryEntryType" mixed="false" abstract="false">
        <complexContent>
            <extension base="gml:AbstractMemberType">
                <sequence minOccurs="0" maxOccurs="1">
                    <element ref="gml:Definition" minOccurs="1" maxOccurs="1" nillable="false"/>
                </sequence>
                <attributeGroup ref="gml:AssociationAttributeGroup"/>
            </extension>
        </complexContent>
    </complexType>
    <element name="indirectEntry" type="gml:IndirectEntryType" nillable="false" abstract="false"/>
    <complexType name="IndirectEntryType" mixed="false" abstract="false">
        <sequence minOccurs="1" maxOccurs="1">
            <element ref="gml:DefinitionProxy" minOccurs="1" maxOccurs="1" nillable="false"/>
        </sequence>
    </complexType>
    <element name="DefinitionProxy" type="gml:DefinitionProxyType" substitutionGroup="gml:Definition" nillable="false" abstract="false"/>
    <complexType name="DefinitionProxyType" mixed="false" abstract="false">
        <complexContent>
            <extension base="gml:DefinitionType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element ref="gml:definitionRef" minOccurs="1" maxOccurs="1" nillable="false"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <element name="definitionRef" type="gml:ReferenceType" nillable="false" abstract="false"/>
</schema>