<?xml version = "1.0" encoding = "UTF-8"?>

<!--$Header: /cvsroot/ebxmlrr/ebxmlrr-spec/misc/2.5/schema/lcm.xsd,v 1.2 2003/06/04 18:17:42 farrukh_najmi Exp $-->
<schema xmlns = "http://www.w3.org/2001/XMLSchema"
	 targetNamespace = "urn:oasis:names:tc:ebxml-regrep:lcm:xsd:2.5"
	 xmlns:tns = "urn:oasis:names:tc:ebxml-regrep:lcm:xsd:2.5"
	 xmlns:rim = "urn:oasis:names:tc:ebxml-regrep:rim:xsd:2.5" 	 
	 xmlns:rs = "urn:oasis:names:tc:ebxml-regrep:rs:xsd:2.5" 	 
   
	>
	<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.5" schemaLocation="rim.xsd"/>

	<!-- Import the rs.xsd file with XML schema for base rs related schema -->
	<import namespace="urn:oasis:names:tc:ebxml-regrep:rs:xsd:2.5" schemaLocation="rs.xsd"/>
  
	<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>
			<complexContent>
				<extension base = "rs:RegistryRequestType">

					<sequence>
						<element ref = "rim:RegistryObjectList"/>
					</sequence>
				</extension>
			</complexContent>
		</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>
			<complexContent>
				<extension base = "rs:RegistryRequestType">
					<sequence>
						<element ref = "rim:RegistryObjectList"/>
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name = "AddSlotsRequest">
		<complexType>
			<complexContent>
				<extension base = "rs:RegistryRequestType">
					<sequence>
						<element ref = "rim:ObjectRef" minOccurs="1" maxOccurs="1"/>
						<element ref = "rim:Slot" minOccurs="1" maxOccurs="unbounded"/>
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name = "RemoveSlotsRequest">
		<annotation>
			<documentation xml:lang = "en"> Only need name in Slot within SlotList </documentation>
		</annotation>
		<complexType>
			<complexContent>
				<extension base = "rs:RegistryRequestType">
					<sequence>
						<element ref = "rim:ObjectRef" minOccurs="1" maxOccurs="1"/>
						<element ref = "rim:Slot" minOccurs="1" maxOccurs="unbounded"/>
					</sequence>
				</extension>
			</complexContent>
		</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>
			<complexContent>
				<extension base = "rs:RegistryRequestType">
					<sequence>
						<element ref = "rim:ObjectRefList"/>
					</sequence>
				</extension>
			</complexContent>
		</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>
			<complexContent>
				<extension base = "rs:RegistryRequestType">
					<sequence>
						<element ref = "rim:ObjectRefList"/>
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name = "UndeprecateObjectsRequest">
		<annotation>
			<documentation xml:lang = "en">
The ObjectRefList is the list of
refs to the registry entrys being un-deprecated.

			</documentation>
		</annotation>
		<complexType>
			<complexContent>
				<extension base = "rs:RegistryRequestType">
					<sequence>
						<element ref = "rim:ObjectRefList"/>
					</sequence>
				</extension>
			</complexContent>
		</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>
			<complexContent>
				<extension base = "rs:RegistryRequestType">
					<sequence>
						<element ref = "rim:ObjectRefList"/>
					</sequence>
					<attribute name = "deletionScope" use = "optional">
						<simpleType>
							<restriction base = "NCName">
								<enumeration value = "DeleteAll"/>
								<enumeration value = "DeleteRepositoryItemOnly"/>
							</restriction>
						</simpleType>
					</attribute>
				</extension>
			</complexContent>
		</complexType>
	</element>
  
	<element name = "RelocateObjectsRequest">
		<complexType>
			<complexContent>
				<extension base = "rs:RegistryRequestType">

					<sequence>
            <element name="Query" type="rim:AdhocQueryType" minOccurs="1" maxOccurs="1"/>		
						<element name = "SourceRegistry" type = "rim:ObjectRefType" minOccurs = "1" maxOccurs = "1"/>
						<element name = "DestinationRegistry" type = "rim:ObjectRefType" minOccurs = "1" maxOccurs = "1"/>
						<element name = "OwnerAtSource" type = "rim:ObjectRefType" minOccurs = "1" maxOccurs = "1"/>
						<element name = "OwnerAtDestination" type = "rim:ObjectRefType" minOccurs = "1" maxOccurs = "1"/>
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name = "AcceptObjectsRequest">
		<!--The ObjectRefList must only contain local ObjectRefs such that they do not specify home attribute -->
		<complexType>
			<complexContent>
				<extension base = "rs:RegistryRequestType">

					<attribute name = "correlationId" use = "required" type = "anyURI"/>
				</extension>
			</complexContent>
		</complexType>
	</element>
  
		
</schema>
