<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml/3.2" targetNamespace="http://www.isotc211.org/2005/gco" elementFormDefault="qualified" version="2012-07-13">
	<xs:import namespace="http://www.opengis.net/gml/3.2" schemaLocation="gml.xsd"/>
	<xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
	<!-- ================================= Annotation ================================ -->
	<xs:annotation>
		<xs:documentation>Geographic COmmon (GCO) extensible markup language is a component of the XML Schema Implementation of Geographic
Information Metadata documented in ISO/TS 19139:2007. GCO includes all the definitions of http://www.isotc211.org/2005/gco namespace. The root document of this namespace is the file gco.xsd. This gcoBase.xsd schema provides:
		1.  tools to handle specific objects like "code lists" and "record";
		2. Some XML types representing that do not follow the general encoding rules.</xs:documentation>
	</xs:annotation>
	<!-- ================================== Imports ================================== -->
	<!-- ########################################################################### -->
	<!-- ########################################################################### -->
	<!-- =========================================================================== -->
	<!-- ========================= IM_Object: abstract Root ============================= -->
	<!--================= Type ===================-->
	<xs:complexType name="AbstractObject_Type" abstract="true">
		<xs:sequence/>
		<xs:attributeGroup ref="gco:ObjectIdentification"/>
	</xs:complexType>
	<!--================= Element =================-->
	<xs:element name="AbstractObject" type="gco:AbstractObject_Type" abstract="true"/>
	<!-- ========================================================================== -->
	<!-- ====================== Reference of a resource =============================== -->
	<!--The following attributeGroup 'extends' the GML  gml:AssociationAttributeGroup-->
	<xs:attributeGroup name="ObjectReference">
		<xs:attributeGroup ref="xlink:simpleAttrs"/>
		<xs:attribute name="uuidref" type="xs:string" form="unqualified"/>
	</xs:attributeGroup>
	<!--================== NULL ====================-->
	<xs:attribute name="nilReason" type="gml:NilReasonType"/>
	<!--=============== PropertyType =================-->
	<xs:complexType name="ObjectReference_PropertyType">
		<xs:sequence/>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- ========================================================================== -->
	<!-- ====================== Identification of a resource ============================== -->
	<xs:attributeGroup name="ObjectIdentification">
		<xs:attribute name="id" type="xs:ID" form="unqualified"/>
		<xs:attribute name="uuid" type="xs:string" form="unqualified"/>
	</xs:attributeGroup>
	<!-- ========================================================================== -->
	<!-- ====================== The CodeList prototype ================================= -->
	<!--It is used to refer to a specific codeListValue in a register-->
	<!--================= Type ==================-->
	<xs:complexType name="CodeListValue_Type">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="codeList" type="xs:anyURI" use="required" form="unqualified"/>
				<xs:attribute name="codeListValue" type="xs:anyURI" use="required" form="unqualified"/>
				<xs:attribute name="codeSpace" type="xs:anyURI" form="unqualified"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ========================================================================== -->
	<!-- ========================== The isoType attribute ============================== -->
	<xs:attribute name="isoType" type="xs:string"/>
	<!--==============End================-->
	<!-- ================================= Annotation ================================ -->
	<xs:annotation>
		<xs:documentation>Geographic COmmon (GCO) extensible markup language is a component of the XML Schema Implementation of Geographic
Information Metadata documented in ISO/TS 19139:2007. GCO includes all the definitions of http://www.isotc211.org/2005/gco namespace. The root document of this namespace is the file gco.xsd. This basicTypes.xsd schema implements concepts from the "basic types" package of ISO/TS 19103.</xs:documentation>
	</xs:annotation>
	<!-- ================================== Imports ================================== -->
	<!-- ########################################################################### -->
	<!-- ########################################################################### -->
	<!-- ================================== Classes ================================= -->
	<!-- =========================================================================== -->
	<xs:complexType name="TypeName_Type">
		<xs:annotation>
			<xs:documentation>A TypeName is a LocalName that references either a recordType or object type in some form of schema. The stored value "aName" is the returned value for the "aName()" operation. This is the types name.  - For parsing from types (or objects) the parsible name normally uses a "." navigation separator, so that it is of the form  [class].[member].[memberOfMember]. ...)</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="gco:AbstractObject_Type">
				<xs:sequence>
					<xs:element name="aName" type="gco:CharacterString_PropertyType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="TypeName" type="gco:TypeName_Type"/>
	<!-- ........................................................................ -->
	<xs:complexType name="TypeName_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:TypeName"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<xs:complexType name="MemberName_Type">
		<xs:annotation>
			<xs:documentation>A MemberName is a LocalName that references either an attribute slot in a record or  recordType or an attribute, operation, or association role in an object instance or  type description in some form of schema. The stored value "aName" is the returned value for the "aName()" operation.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="gco:AbstractObject_Type">
				<xs:sequence>
					<xs:element name="aName" type="gco:CharacterString_PropertyType"/>
					<xs:element name="attributeType" type="gco:TypeName_PropertyType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="MemberName" type="gco:MemberName_Type"/>
	<!-- ........................................................................ -->
	<xs:complexType name="MemberName_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:MemberName"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<xs:complexType name="Multiplicity_Type">
		<xs:annotation>
			<xs:documentation>Use to represent the possible cardinality of a relation. Represented by a set of simple multiplicity ranges.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="gco:AbstractObject_Type">
				<xs:sequence>
					<xs:element name="range" type="gco:MultiplicityRange_PropertyType" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="Multiplicity" type="gco:Multiplicity_Type"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Multiplicity_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:Multiplicity"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<xs:complexType name="MultiplicityRange_Type">
		<xs:annotation>
			<xs:documentation>A component of a multiplicity, consisting of an non-negative lower bound, and a potentially infinite upper bound.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="gco:AbstractObject_Type">
				<xs:sequence>
					<xs:element name="lower" type="gco:Integer_PropertyType"/>
					<xs:element name="upper" type="gco:UnlimitedInteger_PropertyType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="MultiplicityRange" type="gco:MultiplicityRange_Type"/>
	<!-- ........................................................................ -->
	<xs:complexType name="MultiplicityRange_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:MultiplicityRange"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!--================================================-->
	<!-- ================== Measure ===================== -->
	<!-- ........................................................................ -->
	<xs:element name="Measure" type="gml:MeasureType"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Measure_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:Measure"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="Length" type="gml:LengthType" substitutionGroup="gco:Measure"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Length_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:Length"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="Angle" type="gml:AngleType" substitutionGroup="gco:Measure"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Angle_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:Angle"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="Scale" type="gml:ScaleType" substitutionGroup="gco:Measure"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Scale_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:Scale"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="Distance" type="gml:LengthType" substitutionGroup="gco:Length"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Distance_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:Distance"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="CharacterString" type="xs:string"/>
	<!-- ........................................................................ -->
	<xs:complexType name="CharacterString_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:CharacterString"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="Boolean" type="xs:boolean"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Boolean_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:Boolean"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="AbstractGenericName" type="gml:CodeType" abstract="true"/>
	<!-- ........................................................................ -->
	<xs:complexType name="GenericName_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:AbstractGenericName"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="LocalName" type="gml:CodeType" substitutionGroup="gco:AbstractGenericName"/>
	<!-- ........................................................................ -->
	<xs:complexType name="LocalName_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:LocalName"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="ScopedName" type="gml:CodeType" substitutionGroup="gco:AbstractGenericName"/>
	<!-- ........................................................................ -->
	<xs:complexType name="ScopedName_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:ScopedName"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ============================= UOM ========================================= -->
	<!-- ........................................................................ -->
	<!-- ........................................................................ -->
	<xs:complexType name="UomAngle_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gml:UnitDefinition"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<!-- ........................................................................ -->
	<xs:complexType name="UomLength_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gml:UnitDefinition"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<!-- ........................................................................ -->
	<xs:complexType name="UomScale_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gml:UnitDefinition"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<!-- ........................................................................ -->
	<xs:complexType name="UnitOfMeasure_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gml:UnitDefinition"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<!-- ........................................................................ -->
	<xs:complexType name="UomArea_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gml:UnitDefinition"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<!-- ........................................................................ -->
	<xs:complexType name="UomVelocity_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gml:UnitDefinition"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<!-- ........................................................................ -->
	<xs:complexType name="UomTime_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gml:UnitDefinition"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<!-- ........................................................................ -->
	<xs:complexType name="UomVolume_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gml:UnitDefinition"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- ========================================================================== -->
	<!-- =========================== Date & DateTime ================================= -->
	<!--=============================================-->
	<xs:element name="DateTime" type="xs:dateTime"/>
	<!-- ........................................................................ -->
	<xs:complexType name="DateTime_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:DateTime"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<xs:simpleType name="Date_Type">
		<xs:union memberTypes="xs:date xs:gYearMonth xs:gYear"/>
	</xs:simpleType>
	<!-- ........................................................................ -->
	<xs:element name="Date" type="gco:Date_Type" nillable="true"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Date_PropertyType">
		<xs:choice minOccurs="0">
			<xs:element ref="gco:Date"/>
			<xs:element ref="gco:DateTime"/>
		</xs:choice>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- ========================================================================== -->
	<!-- =========================== Number basic type =============================== -->
	<!--=======================================================-->
	<xs:complexType name="Number_PropertyType">
		<xs:choice minOccurs="0">
			<xs:element ref="gco:Real"/>
			<xs:element ref="gco:Decimal"/>
			<xs:element ref="gco:Integer"/>
		</xs:choice>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="Decimal" type="xs:decimal"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Decimal_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:Decimal"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="Real" type="xs:double"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Real_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:Real"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="Integer" type="xs:integer"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Integer_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:Integer"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- ========================================================================== -->
	<!-- ============================= UnlimitedInteger ================================ -->
	<!--NB: The encoding mechanism below is based on the use of XCPT (see the usage of xsi:nil in XML instance).-->
	<!--================= Type ==================-->
	<xs:complexType name="UnlimitedInteger_Type">
		<xs:simpleContent>
			<xs:extension base="xs:nonNegativeInteger">
				<xs:attribute name="isInfinite" type="xs:boolean"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="UnlimitedInteger" type="gco:UnlimitedInteger_Type" nillable="true"/>
	<!-- ........................................................................ -->
	<xs:complexType name="UnlimitedInteger_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:UnlimitedInteger"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- ========================================================================== -->
	<!-- ========================= Record & RecordType ============================== -->
	<!--================= Record ==================-->
	<xs:element name="Record"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Record_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:Record"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!--================= RecordType ==================-->
	<xs:complexType name="RecordType_Type">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="xlink:simpleAttrs"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="RecordType" type="gco:RecordType_Type"/>
	<!-- ........................................................................ -->
	<xs:complexType name="RecordType_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:RecordType"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- ========================================================================== -->
	<!-- =========================== Binary basic type ================================ -->
	<!--NB: this type is not declared in 19103 but used in 19115. -->
	<!--================= Type ==================-->
	<xs:complexType name="Binary_Type">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="src" type="xs:anyURI"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="Binary" type="gco:Binary_Type"/>
	<!-- ........................................................................ -->
	<xs:complexType name="Binary_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="gco:Binary"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!--================================================-->
	<!-- =============================================== -->
	<!--================================================-->
</xs:schema>
