<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:srv="http://www.isotc211.org/2005/srv" 
xmlns:gmd="http://www.isotc211.org/2005/gmd"
 xmlns:gco="http://www.isotc211.org/2005/gco"
  xmlns:xlink="http://www.w3.org/1999/xlink" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.isotc211.org/2005/srv" elementFormDefault="qualified" version="1.0.1">
	<!-- ================================= Annotation ================================ -->
	<xs:annotation>
		<xs:documentation>2018-03-21 Revert namespace to http://www.isotc211.org/2005/srv while version remains at 1.0.1 .</xs:documentation>
		<xs:documentation>2018-03-01 Change namespace to http://www.opengis.net/iso/19139/20070417/srv/1.0 and update version to 1.0.1 .</xs:documentation>
		<xs:documentation>2013-05-24 Add include statement for srv.xsd to ensure that the full namespace will be imported even if it is imported using serviceMetadata.xsd instead of the root schema.</xs:documentation>
		<xs:documentation>2013-05-24 Update of schemalocation statements to refer to ISO/TC 211 XML Schemas available on http://standards.iso.org/ittf/PubliclyAvailableStandards. This includes the adoption of W3C implementation of Xlink: http://www.w3.org/1999/xlink.xsd.</xs:documentation>
		<xs:documentation>2009-03-02 Made conformant with OGC published GML 3.2.1 schemas from OGC 07-036 (schemas repository http://schemas.opengis.net/)</xs:documentation>
		<xs:documentation>2009-03-02 Addition of gco:ScopedName to SV_CoupledResource</xs:documentation>
		<xs:documentation>2007-11-26 The gmd namespace is now imported by a reference to the root xsd file of gmd, gmd.xsd, instead of identification.xsd.</xs:documentation>
		<xs:documentation>2006-11-15 Modification of the maximum cardinality of SV_ServiceIdentification.restrictions to n to allow the description of both legal and security constraints.</xs:documentation>
		<xs:documentation>2006-11-15 Property order in SV_ServiceIdentification: couplingType (mandatory) is now implemented before coupledResource (optional).</xs:documentation>
		<xs:documentation>2006-11-15 Modification of the maximum cardinality to n for SV_ServiceSpecification.typeSpec and SV_PlatformNeutralServiceSpecification.implSpec as a way to implement the qualifiers on these relationships.</xs:documentation>
		<xs:documentation>2006-11-15 Removal of the inheritance relationships between SV_ServiceSpecification, SV_PlatformNeutralServiceSpecification and SV_PlatformSpecificServiceSpecification that were primarily intended as a way to share the two attributes name and opModel of the supertype SV_ServiceSpecification and not its relationship to SV_Interface. A new abstract type SV_AbstractServiceSpecification with two attributes name and opModel has been created; SV_ServiceSpecification, SV_PlatformNeutralServiceSpecification and SV_PlatformSpecificServiceSpecification now derive from this abstract type. The aggregation relationships between these three types are maintained.</xs:documentation>
		<xs:documentation>2006-10-13 This file was generated from ISO TC/211 UML class diagrams. It is based on document 211n1977 (Text of ISO 19119:2005 Amd. 1, Geographic information - Services, Amendment 1), as sent to ISO for further processing. This includes the creation of 2 types (SV_CouplingType and SV_CoupledResource), the addition of 3 properties for SV_ServiceIdentification (extent, couplingType and coupledResource) and the removal of the type SV_ServiceProvider.</xs:documentation>
	</xs:annotation>
	<!-- ================================== Imports ================================== -->
	<xs:import namespace="http://www.isotc211.org/2005/gmd" schemaLocation="../gmd/gmd.xsd"/>
	<xs:import namespace="http://www.isotc211.org/2005/gco" schemaLocation="../gco/gco.xsd"/>
	<xs:include schemaLocation="serviceModel.xsd"/>
	<xs:include schemaLocation="srv.xsd"/>
	<!-- ########################################################################### -->
	<!-- ########################################################################### -->
	<!-- ================================== Classes ================================= -->
	<xs:complexType name="SV_Parameter_Type">
		<xs:complexContent>
			<xs:extension base="gco:AbstractObject_Type">
				<xs:sequence>
					<xs:element name="name" type="gco:MemberName_Type"/>
					<xs:element name="direction" type="srv:SV_ParameterDirection_PropertyType" minOccurs="0"/>
					<xs:element name="description" type="gco:CharacterString_PropertyType" minOccurs="0"/>
					<xs:element name="optionality" type="gco:CharacterString_PropertyType"/>
					<xs:element name="repeatability" type="gco:Boolean_PropertyType"/>
					<xs:element name="valueType" type="gco:TypeName_PropertyType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="SV_Parameter" type="srv:SV_Parameter_Type"/>
	<!-- ........................................................................ -->
	<xs:complexType name="SV_Parameter_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="srv:SV_Parameter"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<xs:complexType name="SV_OperationMetadata_Type">
		<xs:complexContent>
			<xs:extension base="gco:AbstractObject_Type">
				<xs:sequence>
					<xs:element name="operationName" type="gco:CharacterString_PropertyType"/>
					<xs:element name="DCP" type="srv:DCPList_PropertyType" maxOccurs="unbounded"/>
					<xs:element name="operationDescription" type="gco:CharacterString_PropertyType" minOccurs="0"/>
					<xs:element name="invocationName" type="gco:CharacterString_PropertyType" minOccurs="0"/>
					<xs:element name="parameters" type="srv:SV_Parameter_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element name="connectPoint" type="gmd:CI_OnlineResource_PropertyType" maxOccurs="unbounded"/>
					<xs:element name="dependsOn" type="srv:SV_OperationMetadata_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="SV_OperationMetadata" type="srv:SV_OperationMetadata_Type"/>
	<!-- ........................................................................ -->
	<xs:complexType name="SV_OperationMetadata_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="srv:SV_OperationMetadata"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<xs:complexType name="SV_ServiceIdentification_Type">
		<xs:complexContent>
			<xs:extension base="gmd:AbstractMD_Identification_Type">
				<xs:sequence>
					<xs:element name="serviceType" type="gco:GenericName_PropertyType"/>
					<xs:element name="serviceTypeVersion" type="gco:CharacterString_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element name="accessProperties" type="gmd:MD_StandardOrderProcess_PropertyType" minOccurs="0"/>
					<xs:element name="restrictions" type="gmd:MD_Constraints_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element name="keywords" type="gmd:MD_Keywords_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element name="extent" type="gmd:EX_Extent_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element name="coupledResource" type="srv:SV_CoupledResource_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element name="couplingType" type="srv:SV_CouplingType_PropertyType"/>
					<xs:element name="containsOperations" type="srv:SV_OperationMetadata_PropertyType" maxOccurs="unbounded"/>
					<xs:element name="operatesOn" type="gmd:MD_DataIdentification_PropertyType" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="SV_ServiceIdentification" type="srv:SV_ServiceIdentification_Type" substitutionGroup="gmd:AbstractMD_Identification"/>
	<!-- ........................................................................ -->
	<xs:complexType name="SV_ServiceIdentification_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="srv:SV_ServiceIdentification"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<xs:complexType name="SV_OperationChain_Type">
		<xs:complexContent>
			<xs:extension base="gco:AbstractObject_Type">
				<xs:sequence>
					<xs:element name="name" type="gco:CharacterString_PropertyType"/>
					<xs:element name="description" type="gco:CharacterString_PropertyType" minOccurs="0"/>
					<xs:element name="operation" type="srv:SV_Operation_PropertyType" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="SV_OperationChain" type="srv:SV_OperationChain_Type"/>
	<!-- ........................................................................ -->
	<xs:complexType name="SV_OperationChain_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="srv:SV_OperationChain"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<xs:complexType name="SV_OperationChainMetadata_Type">
		<xs:complexContent>
			<xs:extension base="gco:AbstractObject_Type">
				<xs:sequence>
					<xs:element name="name" type="gco:CharacterString_PropertyType"/>
					<xs:element name="description" type="gco:CharacterString_PropertyType" minOccurs="0"/>
					<xs:element name="operation" type="srv:SV_OperationMetadata_PropertyType" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="SV_OperationChainMetadata" type="srv:SV_OperationChainMetadata_Type"/>
	<!-- ........................................................................ -->
	<xs:complexType name="SV_OperationChainMetadata_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="srv:SV_OperationChainMetadata"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<xs:complexType name="SV_CoupledResource_Type">
		<xs:complexContent>
			<xs:extension base="gco:AbstractObject_Type">
				<xs:sequence>
					<xs:element name="operationName" type="gco:CharacterString_PropertyType"/>
					<xs:element name="identifier" type="gco:CharacterString_PropertyType"/>
					<xs:element ref="gco:ScopedName" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ........................................................................ -->
	<xs:element name="SV_CoupledResource" type="srv:SV_CoupledResource_Type"/>
	<!-- ........................................................................ -->
	<xs:complexType name="SV_CoupledResource_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="srv:SV_CoupledResource"/>
		</xs:sequence>
		<xs:attributeGroup ref="gco:ObjectReference"/>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<xs:simpleType name="SV_ParameterDirection_Type">
		<xs:restriction base="xs:string">
			<xs:enumeration value="in"/>
			<xs:enumeration value="out"/>
			<xs:enumeration value="in/out"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- ........................................................................ -->
	<xs:element name="SV_ParameterDirection" type="srv:SV_ParameterDirection_Type" substitutionGroup="gco:CharacterString"/>
	<!-- ........................................................................ -->
	<xs:complexType name="SV_ParameterDirection_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="srv:SV_ParameterDirection"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="DCPList" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString"/>
	<!-- ........................................................................ -->
	<xs:complexType name="DCPList_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="srv:DCPList"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
	<!-- ........................................................................ -->
	<xs:element name="SV_CouplingType" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString"/>
	<!-- ........................................................................ -->
	<xs:complexType name="SV_CouplingType_PropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="srv:SV_CouplingType"/>
		</xs:sequence>
		<xs:attribute ref="gco:nilReason"/>
	</xs:complexType>
	<!-- =========================================================================== -->
</xs:schema>
