<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:core="http://schema.omg.org/spec/CTS2/1.0/Core" xmlns="http://schema.omg.org/spec/CTS2/1.0/ValueSet" targetNamespace="http://schema.omg.org/spec/CTS2/1.0/ValueSet"
	elementFormDefault="qualified">

	<xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/Core" schemaLocation="../core/Core.xsd"/>
	<!-- ====================================================
		ValueSetCatalogEntry
		======================================================-->
	<xs:element name="ValueSetCatalogEntry" type="ValueSetCatalogEntry">
		<xs:annotation>
			<xs:documentation>An entry in a value set catalog that describes the purpose, use, etc. of a value set.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ValueSetCatalogEntry">
		<xs:annotation>
			<xs:documentation>An entry in a value set catalog that describes the purpose, use, etc. of a value set.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="core:AbstractResourceDescription">
				<xs:sequence>
					<xs:element name="definitions" type="core:ValueSetDefinitionDirectoryURI" minOccurs="0" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>a <i>DirectoryURI </i>that references a set of definition (versions) for this value set. If the service profile does not support value set definitions, this attribute should be omitted. If the
								service supports definitions but none are known for this value set, the parameter should be supplied, but will resolve to an empty directory.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="currentDefinition" type="core:ValueSetDefinitionReference" minOccurs="0">
						<xs:annotation>
							<xs:documentation>a reference to the definition associated with the CURRENT tag, if any </xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="valueSetName" type="core:ValueSetName" use="required">
					<xs:annotation>
						<xs:documentation>the unique name of this value set within the context of the CTS<sub>2</sub> service instance. </xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<!-- ====================================================
		ValueSetCatalogEntry PSM
		======================================================-->
	<xs:element name="ValueSetCatalogEntryMsg" type="ValueSetCatalogEntryMsg"/>
	<xs:complexType name="ValueSetCatalogEntryMsg">
		<xs:annotation>
			<xs:documentation>A <i>ValueSetDefinition</i> read from a service instance.</xs:documentation>
			<xs:appinfo>PSM</xs:appinfo>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="core:Message">
				<xs:sequence>
					<xs:element name="valueSetCatalogEntry" type="ValueSetCatalogEntry"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<!-- ====================================================
		ValueSetCatalogEntryDirectory
		======================================================-->
	<xs:element name="ValueSetCatalogEntryDirectory" type="ValueSetCatalogEntryDirectory"/>
	<xs:complexType name="ValueSetCatalogEntryDirectory">
		<xs:annotation>
			<xs:documentation>A catalog that summarizes a set of value sets known to the service.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="core:Directory">
				<xs:sequence>
					<xs:element name="entry" type="ValueSetCatalogEntrySummary" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	
	<xs:complexType name="ValueSetCatalogEntrySummary">
		<xs:annotation>
			<xs:documentation>A synopsis of a <i>ValueSet</i> along with information about how to access the complete resource.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="core:AbstractResourceDescriptionDirectoryEntry">
				<xs:sequence>
					<xs:element name="currentDefinition" type="core:ValueSetDefinitionReference" minOccurs="0" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>the name and URI of the value set definition that is associated with the <i>CURRENT</i> tag for this value set. </xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="valueSetName" type="core:ValueSetName" use="required">
					<xs:annotation>
						<xs:documentation>the local identifier assigned to the value set within the context of the service</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	
	<xs:element name="ValueSetCatalogEntryList" type="ValueSetCatalogEntryList"/>
	<xs:complexType name="ValueSetCatalogEntryList">
		<xs:annotation>
			<xs:documentation>An iterable collection of <i>ValueSetCatalogEntries.</i></xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="core:Directory">
				<xs:sequence>
					<xs:element name="entry" type="ValueSetCatalogEntryListEntry" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="ValueSetCatalogEntryListEntry">
		<xs:annotation>
			<xs:documentation>A <i>ValueSetCatalogEntry </i>as it appears in a directory listing.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="core:DirectoryEntry">
				<xs:sequence>
					<xs:element name="entry" type="ValueSetCatalogEntry"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
</xs:schema>
