<?xml version = "1.0" encoding = "UTF-8"?>
<!--Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
<!--$Header: /cvsroot/ebxmlrr/ebxmlrr-spec/misc/schema/rs.xsd,v 1.21 2001/12/02 15:58:53 farrukh_najmi Exp $-->

<schema xmlns = "http://www.w3.org/2001/XMLSchema"
	 targetNamespace = "urn:oasis:names:tc:ebxml-regrep:registry:xsd:2.0"
	 xmlns:tns = "urn:oasis:names:tc:ebxml-regrep:registry:xsd:2.0"
	 xmlns:rim = "urn:oasis:names:tc:ebxml-regrep:rim:xsd:2.0" 	 
	 xmlns:query = "urn:oasis:names:tc:ebxml-regrep:query:xsd:2.0" 	 
	>
	<annotation>
		<documentation xml:lang = "en">The schema for OASIS ebXML Registry Services</documentation>
	</annotation>

	<!-- Import the rim.xsd file with XML schema mappaing from RIM -->
	<import namespace="urn:oasis:names:tc:ebxml-regrep:rim:xsd:2.0" schemaLocation="http://www.oasis-open.org/committees/regrep/documents/2.0/schema/rim.xsd"/>

	<!-- Import the query.xsd file with XML schema for query related schema -->
	<import namespace="urn:oasis:names:tc:ebxml-regrep:query:xsd:2.0" schemaLocation="http://www.oasis-open.org/committees/regrep/documents/2.0/schema/query.xsd"/>

	
	<element name = "RequestAcceptedResponse">
		<annotation>
			<documentation xml:lang = "en">
Mapping of the same named interface in ebRS.
			</documentation>
		</annotation>
		<complexType/>
	</element>

	<element name = "SubmitObjectsRequest">
		<annotation>
			<documentation xml:lang = "en">
The SubmitObjectsRequest allows one to submit a list of RegistryObject elements. Each RegistryEntry element provides metadata for a single submitted object.  Note that the repository item being submitted is in a separate document that is not in this DTD. The ebXML Messaging Services Specfication defines packaging, for submission, of the metadata of a repository item with the repository item itself. The value of the id attribute of the ExtrinsicObject element must be the same as the xlink:href attribute within the Reference element within the Manifest element of the MessageHeader.
			</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref = "rim:LeafRegistryObjectList"/>
			</sequence>
		</complexType>
	</element>

	<element name = "UpdateObjectsRequest">
		<annotation>
			<documentation xml:lang = "en">
The UpdateObjectsRequest allows one to update a list of RegistryObject elements. Each RegistryEntry element provides metadata for a single submitted object.  Note that the repository item being submitted is in a separate document that is not in this DTD. The ebXML Messaging Services Specfication defines packaging, for submission, of the metadata of a repository item with the repository item itself. The value of the id attribute of the ExtrinsicObject element must be the same as the xlink:href attribute within the Reference element within the Manifest element of the MessageHeader.
			</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref = "rim:LeafRegistryObjectList"/>
			</sequence>
		</complexType>
	</element>

	<element name = "AddSlotsRequest">
		<complexType>
			<sequence>
				<element ref = "rim:ObjectRef" minOccurs="1" maxOccurs="1"/>
				<element ref = "rim:Slot" minOccurs="1" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<element name = "RemoveSlotsRequest">
		<annotation>
			<documentation xml:lang = "en"> Only need name in Slot within SlotList </documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref = "rim:ObjectRef" minOccurs="1" maxOccurs="1"/>
				<element ref = "rim:Slot" minOccurs="1" maxOccurs="unbounded"/>
			</sequence>
		</complexType>
	</element>
	<element name = "ApproveObjectsRequest">
		<annotation>
			<documentation xml:lang = "en">
The ObjectRefList is the list of
refs to the registry entrys being approved.
			</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref = "rim:ObjectRefList"/>
			</sequence>
		</complexType>
	</element>
	<element name = "DeprecateObjectsRequest">
		<annotation>
			<documentation xml:lang = "en">
The ObjectRefList is the list of
refs to the registry entrys being deprecated.

			</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref = "rim:ObjectRefList"/>
			</sequence>
		</complexType>
	</element>
	<element name = "RemoveObjectsRequest">
		<annotation>
			<documentation xml:lang = "en">
The ObjectRefList is the list of
refs to the registry entrys being removed

			</documentation>
		</annotation>

		<complexType>
			<sequence>
				<element ref = "rim:ObjectRefList"/>
			</sequence>
			<attribute name = "deletionScope" use = "optional">
				<simpleType>
					<restriction base = "NMTOKEN">
						<enumeration value = "DeleteAll"/>
						<enumeration value = "DeleteRepositoryItemOnly"/>
					</restriction>
				</simpleType>
			</attribute>
		</complexType>
	</element>


		
	<element name = "RegistryProfile">
		<annotation>
			<documentation xml:lang = "en">
Describes the capability profile for the registry and what optional features
are supported

			</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref = "tns:OptionalFeaturesSupported"/>
			</sequence>
			<attribute name = "version" use = "required" type = "string"/>
		</complexType>
	</element>

	<element name = "OptionalFeaturesSupported">
		<complexType>
			<attribute name = "sqlQuery" default = "false" type = "boolean"/>
			<attribute name = "xQuery" default = "false" type = "boolean"/>
		</complexType>
	</element>

	<simpleType name = "ErrorType">
		<restriction base = "NMTOKEN">
			<enumeration value = "Warning"/>
			<enumeration value = "Error"/>
		</restriction>
	</simpleType>
	<element name = "RegistryErrorList">
		<annotation>
			<documentation xml:lang = "en"> The RegistryErrorList is derived from the ErrorList element from the ebXML Message Service Specification </documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref = "tns:RegistryError" maxOccurs = "unbounded"/>
			</sequence>
			<attribute name = "highestSeverity" use = "optional" type = "tns:ErrorType"/>
		</complexType>
	</element>
	<element name = "RegistryError">
		<complexType>
			<simpleContent>
				<extension base = "string">
					<attribute name = "codeContext" use = "required" type = "string"/>
					<attribute name = "errorCode" use = "required" type = "string"/>
					<attribute name = "severity" default = "Error" type = "tns:ErrorType"/>
					<attribute name = "location" use = "optional" type = "string"/>
				</extension>
			</simpleContent>
		</complexType>
	</element>

	<element name = "RegistryResponse">
		<complexType>
			<sequence>
				<choice minOccurs = "0">
					<element ref = "query:AdhocQueryResponse"/>
					<element ref = "query:GetContentResponse"/>
				</choice>
				<element ref = "tns:RegistryErrorList" minOccurs = "0"/>
			</sequence>
			<attribute name = "status" use = "required">
				<simpleType>
					<restriction base = "NMTOKEN">
						<enumeration value = "Success"/>
						<enumeration value = "Failure"/>
						<enumeration value = "Unavailable"/>
					</restriction>
				</simpleType>
			</attribute>
		</complexType>
	</element>

	<element name = "RootElement">
		<annotation>
			<documentation xml:lang = "en"> The contrived root node </documentation>
		</annotation>
		<complexType>
			<choice>
				<element ref = "tns:SubmitObjectsRequest"/>
				<element ref = "tns:UpdateObjectsRequest"/>
				<element ref = "tns:ApproveObjectsRequest"/>
				<element ref = "tns:DeprecateObjectsRequest"/>
				<element ref = "tns:RemoveObjectsRequest"/>
				<element ref = "query:AdhocQueryRequest"/>
				<element ref = "query:GetContentRequest"/>
				<element ref = "tns:AddSlotsRequest"/>
				<element ref = "tns:RemoveSlotsRequest"/>
				<element ref = "tns:RegistryResponse"/>
				<element ref = "tns:RegistryProfile"/>
			</choice>
		</complexType>
	</element>
</schema>
