<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.isotc211.org/2005/gco" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml">
	<!-- ================================= Annotation ================================ -->
	<xs:annotation>
		<xs:documentation>This 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 ================================== -->
	<xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlinks.xsd"/>
	<xs:import namespace="http://www.opengis.net/gml" schemaLocation="gml.xsd"/>
	<!-- ########################################################################### -->
	<!-- ########################################################################### -->
	<!-- =========================================================================== -->
	<!-- ========================= 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:simpleLink"/>
		<xs:attribute name="uuidref" type="xs:string"/>
	</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"/>
		<xs:attribute name="uuid" type="xs:string"/>
	</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"/>
				<xs:attribute name="codeListValue" type="xs:anyURI" use="required"/>
				<xs:attribute name="codeSpace" type="xs:anyURI"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- ========================================================================== -->
	<!-- ========================== The isoType attribute ============================== -->
	<xs:attribute name="isoType" type="xs:string"/>
	<!--==============End================-->
</xs:schema>