<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmx="http://www.isotc211.org/2005/gmx" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.isotc211.org/2005/gmx" elementFormDefault="qualified" version="0.1" finalDefault="" blockDefault="" attributeFormDefault="unqualified">
    <xs:annotation>
        <xs:documentation>This file was generated from ISO TC/211 UML class diagrams == 03-15-2005 09:14:50 ======</xs:documentation>
    </xs:annotation>
    <xs:import namespace="http://www.isotc211.org/2005/gco" schemaLocation="../gco/gco.xsd"/>
    <xs:import namespace="http://www.opengis.net/gml" schemaLocation="../gml/base/dictionary.xsd"/>
    <xs:import namespace="http://www.isotc211.org/2005/gmd" schemaLocation="../gmd/gmd.xsd"/>
    <xs:complexType name="CT_CodelistValue_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmx:CodeDefinition" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="CT_Codelist_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmx:CodeListDictionary" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="CodeDefinition_Type" mixed="false" abstract="false">
        <xs:complexContent>
            <xs:extension base="gml:DefinitionType"/>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="CodeDefinition" type="gmx:CodeDefinition_Type" substitutionGroup="gml:Definition" nillable="false" abstract="false"/>
    <xs:complexType name="CodeDefinition_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmx:CodeDefinition" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="CodeListDictionary_Type" mixed="false" abstract="false">
        <xs:annotation>
            <xs:documentation>Constraints: - 1) metadataProperty.card = 0 - 2) dictionaryEntry.card = 0</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="gml:DictionaryType">
                <xs:sequence minOccurs="1" maxOccurs="1">
                    <xs:element name="codeEntry" type="gmx:CodeDefinition_PropertyType" maxOccurs="unbounded" minOccurs="1" nillable="false"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="CodeListDictionary" type="gmx:CodeListDictionary_Type" substitutionGroup="gml:Dictionary" nillable="false" abstract="false"/>
    <xs:complexType name="CodeListDictionary_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmx:CodeListDictionary" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="ML_CodeDefinition_Type" mixed="false" abstract="false">
        <xs:complexContent>
            <xs:extension base="gmx:CodeDefinition_Type">
                <xs:sequence minOccurs="1" maxOccurs="1">
                    <xs:element name="alternativeExpression" type="gmx:CodeAlternativeExpression_PropertyType" maxOccurs="unbounded" minOccurs="1" nillable="false"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="ML_CodeDefinition" type="gmx:ML_CodeDefinition_Type" substitutionGroup="gmx:CodeDefinition" nillable="false" abstract="false"/>
    <xs:complexType name="ML_CodeDefinition_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmx:ML_CodeDefinition" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="ML_CodeListDictionary_Type" mixed="false" abstract="false">
        <xs:annotation>
            <xs:documentation>Constraint: codeEntry.type = ML_CodeListDefinition</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="gmx:CodeListDictionary_Type">
                <xs:sequence minOccurs="1" maxOccurs="1">
                    <xs:element name="alternativeExpression" type="gmx:ClAlternativeExpression_PropertyType" maxOccurs="unbounded" minOccurs="1" nillable="false"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="ML_CodeListDictionary" type="gmx:ML_CodeListDictionary_Type" substitutionGroup="gmx:CodeListDictionary" nillable="false" abstract="false"/>
    <xs:complexType name="ML_CodeListDictionary_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmx:ML_CodeListDictionary" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="ClAlternativeExpression_Type" mixed="false" abstract="false">
        <xs:annotation>
            <xs:documentation>XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="gml:DefinitionType">
                <xs:sequence minOccurs="1" maxOccurs="1">
                    <xs:element name="locale" type="gmd:PT_Locale_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                </xs:sequence>
                <xs:attribute name="codeSpace" type="xs:anyURI" use="required"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="ClAlternativeExpression" type="gmx:ClAlternativeExpression_Type" nillable="false" abstract="false"/>
    <xs:complexType name="ClAlternativeExpression_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmx:ClAlternativeExpression" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="CodeAlternativeExpression_Type" mixed="false" abstract="false">
        <xs:annotation>
            <xs:documentation>XML attributes contraints: - 1) Id is mandatory - 2) codeSpace (type xsd:anyURI) is mandatory</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="gml:DefinitionType">
                <xs:sequence minOccurs="1" maxOccurs="1">
                    <xs:element name="locale" type="gmd:PT_Locale_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                </xs:sequence>
                <xs:attribute name="codeSpace" type="xs:anyURI" use="required"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="CodeAlternativeExpression" type="gmx:CodeAlternativeExpression_Type" nillable="false" abstract="false"/>
    <xs:complexType name="CodeAlternativeExpression_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmx:CodeAlternativeExpression" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
</xs:schema>