<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:core="http://schema.omg.org/spec/CTS2/1.0/Core" 
	xmlns:codeSystem="http://schema.omg.org/spec/CTS2/1.0/CodeSystem"
	xmlns:coreService="http://schema.omg.org/spec/CTS2/1.0/CoreService"
	xmlns:tns="http://schema.omg.org/spec/CTS2/1.0/wsdl/CodeSystemCatalogQueryServices"
	attributeFormDefault="qualified" 
	elementFormDefault="qualified"
	targetNamespace="http://schema.omg.org/spec/CTS2/1.0/wsdl/CodeSystemCatalogQueryServices">
	
	<xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/Core" schemaLocation="../core/Core.xsd" />
	<xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/CoreService" schemaLocation="../core/CoreService.xsd" />
	<xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/CodeSystem" schemaLocation="../codesystem/CodeSystem.xsd" />
  <xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/wsdl/BaseServiceTypes" schemaLocation="BaseServiceTypes.xsd" />
  <xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/wsdl/BaseQueryServiceTypes" schemaLocation="BaseQueryServiceTypes.xsd" />
	
	<xs:element name="count" type="tns:count" />	
	<xs:complexType name="count">
		<xs:sequence>
			<xs:element minOccurs="1" name="directory" type="core:CodeSystemCatalogEntryDirectoryURI" />
			<xs:element minOccurs="0" name="context" type="coreService:ReadContext" />
		  <xs:element minOccurs="0" name="timeout" type="core:NaturalNumber"/>
		</xs:sequence>

	</xs:complexType>

	<xs:element name="countResponse" type="tns:countResponse" />
	<xs:complexType name="countResponse">
		<xs:sequence>
			<xs:element name="return" type="core:NaturalNumber" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="restrict" type="tns:restrict" />
	<xs:complexType name="restrict">
		<xs:sequence>
			<xs:element minOccurs="1" name="directory" type="core:CodeSystemCatalogEntryDirectoryURI" />
			<xs:element minOccurs="1" name="filter" type="core:Filter" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="restrictResponse" type="tns:restrictResponse" />
	<xs:complexType name="restrictResponse">
		<xs:sequence>
			<xs:element name="return" type="core:CodeSystemCatalogEntryDirectoryURI" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="difference" type="tns:restrict" />
	<xs:complexType name="difference">
		<xs:sequence>
			<xs:element name="initialSet" type="core:CodeSystemCatalogEntryDirectoryURI" />
			<xs:element name="elementsToRemove" type="core:CodeSystemCatalogEntryDirectoryURI" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="differenceResponse" type="tns:differenceResponse" />
	<xs:complexType name="differenceResponse">
		<xs:sequence>
			<xs:element name="return"
				type="core:CodeSystemCatalogEntryDirectoryURI" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="intersect" type="tns:intersect" />
	<xs:complexType name="intersect">
		<xs:sequence>
			<xs:element name="directory1" type="core:CodeSystemCatalogEntryDirectoryURI" />
			<xs:element name="directory2" type="core:CodeSystemCatalogEntryDirectoryURI" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="intersectResponse" type="tns:intersectResponse" />
	<xs:complexType name="intersectResponse">
		<xs:sequence>
			<xs:element name="return"	type="core:CodeSystemCatalogEntryDirectoryURI" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="union" type="tns:union" />
	<xs:complexType name="union">
		<xs:sequence>
			<xs:element name="directory1" type="core:CodeSystemCatalogEntryDirectoryURI" />
			<xs:element name="directory2" type="core:CodeSystemCatalogEntryDirectoryURI" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="unionResponse" type="tns:unionResponse" />
	<xs:complexType name="unionResponse">
		<xs:sequence>
			<xs:element name="return" type="core:CodeSystemCatalogEntryDirectoryURI" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="resolve" type="tns:resolve" />
	<xs:complexType name="resolve">
		<xs:sequence>
			<xs:element minOccurs="1" name="directory" type="core:CodeSystemCatalogEntryDirectoryURI" />
			<xs:element minOccurs="0" name="queryControl" type="coreService:QueryControl" />
			<xs:element minOccurs="0" name="context" type="coreService:ReadContext" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="resolveResponse" type="tns:resolveResponse" />
	<xs:complexType name="resolveResponse">
		<xs:sequence>
			<xs:element ref="codeSystem:CodeSystemCatalogEntryDirectory" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="resolveAsList" type="tns:resolveAsList" />
	<xs:complexType name="resolveAsList">
		<xs:sequence>
			<xs:element minOccurs="1" name="directory" type="core:CodeSystemCatalogEntryDirectoryURI" />
			<xs:element minOccurs="0" name="control" type="coreService:QueryControl" />
			<xs:element minOccurs="0" name="context" type="coreService:ReadContext" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="resolveAsListResponse" type="tns:resolveAsListResponse" />
	<xs:complexType name="resolveAsListResponse">
		<xs:sequence>
			<xs:element ref="codeSystem:CodeSystemCatalogEntryList" />
		</xs:sequence>

	</xs:complexType>

	<xs:element name="getAllCodeSystems" type="tns:getAllCodeSystems" />
	<xs:complexType name="getAllCodeSystems">
		<xs:sequence />
	</xs:complexType>

	<xs:element name="getAllCodeSystemsResponse" type="tns:getAllCodeSystemsResponse" />
	<xs:complexType name="getAllCodeSystemsResponse">
		<xs:sequence>
			<xs:element name="return" type="core:CodeSystemCatalogEntryDirectoryURI" />
		</xs:sequence>

	</xs:complexType>

</xs:schema>
