OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

regrep message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Latest V3 schema distribution


Kathryn,

I have updated schema files for the following:

-Made AdhocQueryType a sub-type of RegistryObjectType

-Removes choice from rim.xsd (but not from query.xsd)

-Nikola's filter query changes in query.xsd for new V3 RIM changes
  This is a major task that has now been completed. Thanks Nikola!

To help further testing and development, please place the attached files
at the locations specified below on our web site. Thanks.

*.xsd => http://www.oasis-open.org/committees/regrep/documents/3.0/schema


-- 
Regards,
Farrukh






<?xml version = "1.0" encoding = "UTF-8"?>

<!--$Revision: 1.15 $-->
<schema xmlns = "http://www.w3.org/2001/XMLSchema"
	 targetNamespace = "urn:oasis:names:tc:ebxml-regrep:query:xsd:3.0"
	 xmlns:rs = "urn:oasis:names:tc:ebxml-regrep:rs:xsd:3.0"
	 xmlns:tns = "urn:oasis:names:tc:ebxml-regrep:query:xsd:3.0"
	 xmlns:rim = "urn:oasis:names:tc:ebxml-regrep:rim:xsd:3.0">

	<!-- Import the rim.xsd file with XML schema mappaing from RIM -->
	<import namespace = "urn:oasis:names:tc:ebxml-regrep:rim:xsd:3.0" schemaLocation = "rim.xsd"/>
	<import namespace = "urn:oasis:names:tc:ebxml-regrep:rs:xsd:3.0" schemaLocation = "rs.xsd"/>
	
	<complexType name = "ResponseOptionType">
		<attribute name = "returnType" default="RegistryObject">
			<simpleType>
				<restriction base = "NMTOKEN">
					<enumeration value = "ObjectRef"/>
					<enumeration value = "RegistryObject"/>
					<enumeration value = "RegistryEntry"/>
					<enumeration value = "LeafClass"/>
					<enumeration value = "LeafClassWithRepositoryItem"/>
				</restriction>
			</simpleType>
		</attribute>

		<attribute name = "returnComposedObjects" type="boolean" default="false"/>
		
	</complexType>
	<element name = "ResponseOption" type = "tns:ResponseOptionType"/>


	<element name = "AdhocQueryRequest">
		<annotation>
			<documentation xml:lang = "en">
An Ad hoc query request specifies an ad hoc query.
			</documentation>
		</annotation>
		<complexType>
			<complexContent>
				<extension base = "rs:RegistryRequestType">

					<sequence>
						<element ref = "tns:ResponseOption" minOccurs="1" maxOccurs="1" />
						<choice minOccurs="1" maxOccurs="1">
							<element ref = "tns:FilterQuery"/>
							<element ref = "tns:SQLQuery"/>
						</choice>
					</sequence>
		
					<attribute name = "federated" use = "optional" type="boolean" default="false"/>
					<attribute name = "federation" use = "optional" type="anyURI"/>
					<attribute name = "startIndex" type="integer" default="0"/>
					<attribute name = "maxResults" type="integer" default="-1"/>
				</extension>
			</complexContent>
		</complexType>
	</element>
        

 <complexType name="SQLQueryType">
  <annotation>
   <documentation xml:lang="en">
An Ad hoc query request specifies a query string as defined by [RS] in the queryString attribute
 
   </documentation>
  </annotation>
 
  <complexContent>
   <extension base="rim:AdhocQueryType">
    <sequence>
      <element name="QueryString" type="string"/>
    </sequence>   
   </extension>
  </complexContent>
 </complexType>
 <element name="SQLQuery" type="tns:SQLQueryType"/>
               

	<element name = "AdhocQueryResponse">
		<annotation>
			<documentation xml:lang = "en">
The response includes a RegistryObjectList which has zero or more
RegistryObjects that match the query specified in AdhocQueryRequest.

			</documentation>
		</annotation>
		<complexType>
			<complexContent>
				<extension base = "rs:RegistryResponseType">
					<choice minOccurs="1" maxOccurs="1">
						<element ref = "tns:FilterQueryResult"/>
						<element ref = "tns:SQLQueryResult"/>
					</choice>
					<attribute name = "startIndex" type="integer" default="0"/>
					<attribute name = "totalResultCount" type="integer" use="optional"/>
				</extension>
			</complexContent>
		</complexType>
	</element>
	
	<element name = "SQLQueryResult" type = "rim:RegistryObjectListType"/>	

 <complexType name="FilterQueryType">
  <complexContent>
   <extension base="rim:AdhocQueryType">
    <choice minOccurs="1" maxOccurs="1">
     <element ref="tns:RegistryObjectQuery"/>
     <element ref="tns:RegistryEntryQuery"/>
     <element ref="tns:AssociationQuery"/>
     <element ref="tns:AuditableEventQuery"/>
     <element ref="tns:ClassificationQuery"/>
     <element ref="tns:ClassificationNodeQuery"/>
     <element ref="tns:ClassificationSchemeQuery"/>
     <element ref="tns:RegistryPackageQuery"/>
     <element ref="tns:ExtrinsicObjectQuery"/>
     <element ref="tns:OrganizationQuery"/>
     <element ref="tns:ServiceQuery"/>
     <element ref="tns:FederationQuery"/>
     <element ref="tns:RegistryQuery"/>
     <element ref="tns:SubscriptionQuery"/>
     <element ref="tns:UserQuery"/>
    </choice>
   </extension>
  </complexContent>
 </complexType>
 <element name="FilterQuery" type="tns:FilterQueryType"/>  
  	
	<complexType name = "RegistryObjectQueryType">
		<sequence>
			<element ref = "tns:RegistryObjectFilter" minOccurs = "0"  maxOccurs="1"/>
			<element ref = "tns:ExternalIdentifierFilter" minOccurs = "0" maxOccurs = "unbounded"/>
			<element ref = "tns:AuditableEventQuery" minOccurs = "0" maxOccurs = "unbounded"/>
			<element ref = "tns:NameBranch" minOccurs = "0" maxOccurs = "1"/>
			<element ref = "tns:DescriptionBranch" minOccurs = "0" maxOccurs = "1"/>
			<element ref = "tns:ClassifiedByBranch" minOccurs = "0" maxOccurs = "unbounded"/>
			<element ref = "tns:SlotBranch" minOccurs = "0" maxOccurs = "unbounded"/>
			<element ref = "tns:SourceAssociationBranch" minOccurs = "0" maxOccurs = "unbounded"/>
			<element ref = "tns:TargetAssociationBranch" minOccurs = "0" maxOccurs = "unbounded"/>
		</sequence>
	</complexType>
	<element name = "RegistryObjectQuery" type = "tns:RegistryObjectQueryType"/>

	<complexType name = "InternationalStringBranchType">
		<sequence>
			<element ref = "tns:LocalizedStringFilter" minOccurs = "0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<element name = "NameBranch" type = "tns:InternationalStringBranchType" />
	<element name = "DescriptionBranch" type = "tns:InternationalStringBranchType" />

	<complexType name = "RegistryEntryQueryType">
		<complexContent>
			<extension base = "tns:RegistryObjectQueryType">
				<sequence>
					<element ref = "tns:RegistryEntryFilter" minOccurs = "0" maxOccurs="1"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "RegistryEntryQuery" type = "tns:RegistryEntryQueryType"/>

	<complexType name = "ClassificationQueryType">
		<complexContent>
			<extension base = "tns:RegistryObjectQueryType">
				<sequence>
					<element ref = "tns:ClassificationFilter" minOccurs = "0" maxOccurs="1"/>
					<element ref = "tns:ClassificationSchemeQuery" minOccurs = "0" maxOccurs="1"/>
					<element ref = "tns:ClassificationNodeQuery" minOccurs = "0" maxOccurs="1"/>
					<element ref = "tns:RegistryObjectQuery" minOccurs = "0" maxOccurs="1"/>
					<element ref = "tns:RegistryEntryQuery" minOccurs = "0" maxOccurs="1"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "ClassificationQuery" type = "tns:ClassificationQueryType"/>

	<complexType name = "ClassificationSchemeQueryType">
		<complexContent>
			<extension base = "tns:RegistryEntryQueryType">
				<sequence>
					<element ref = "tns:ClassificationSchemeFilter" minOccurs = "0" maxOccurs="1"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "ClassificationSchemeQuery" type = "tns:ClassificationSchemeQueryType"/>

	<complexType name = "AssociationQueryType">
		<complexContent>
			<extension base = "tns:RegistryObjectQueryType">
				<sequence>
					<element ref = "tns:AssociationFilter" minOccurs = "0" maxOccurs = "1"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "AssociationQuery" type = "tns:AssociationQueryType"/>

	<complexType name = "AuditableEventQueryType">
		<complexContent>
			<extension base = "tns:RegistryObjectQueryType">
				<sequence>
					<element ref = "tns:AuditableEventFilter" minOccurs = "0" maxOccurs = "1"/>
					<element ref = "tns:RegistryObjectQuery" minOccurs = "0" maxOccurs = "unbounded"/>
					<element ref = "tns:RegistryEntryQuery" minOccurs = "0" maxOccurs = "unbounded"/>
					<element ref = "tns:UserQuery" minOccurs = "0" maxOccurs = "1"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "AuditableEventQuery" type = "tns:AuditableEventQueryType"/>
	
	<complexType name = "ClassificationNodeQueryType">
		<complexContent>
			<extension base = "tns:RegistryObjectQueryType">
				<sequence minOccurs = "0" maxOccurs="1">
					<element ref = "tns:ClassificationNodeFilter" minOccurs = "0" maxOccurs="1"/>
					<element ref = "tns:ClassificationSchemeQuery" minOccurs = "0" maxOccurs="1"/>
					<element ref = "tns:ClassificationNodeParentBranch" minOccurs = "0" maxOccurs="1"/>
					<element ref = "tns:ClassificationNodeChildrenBranch" minOccurs = "0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "ClassificationNodeQuery" type = "tns:ClassificationNodeQueryType"/>
	<element name = "ClassificationNodeParentBranch" type="tns:ClassificationNodeQueryType" />
	<element name = "ClassificationNodeChildrenBranch" type="tns:ClassificationNodeQueryType" />

	<complexType name = "RegistryPackageQueryType">
		<complexContent>
			<extension base = "tns:RegistryEntryQueryType">
				<sequence>
					<element ref = "tns:RegistryPackageFilter" minOccurs = "0" maxOccurs="1"/>
					<element ref = "tns:RegistryObjectQuery" minOccurs = "0" maxOccurs = "unbounded"/>
					<element ref = "tns:RegistryEntryQuery" minOccurs = "0" maxOccurs = "unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "RegistryPackageQuery" type = "tns:RegistryPackageQueryType"/>
	
	<complexType name = "ExtrinsicObjectQueryType">
		<complexContent>
			<extension base = "tns:RegistryEntryQueryType">
				<sequence>
					<element ref = "tns:ExtrinsicObjectFilter" minOccurs = "0" maxOccurs="1"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "ExtrinsicObjectQuery" type = "tns:ExtrinsicObjectQueryType"/>

	<complexType name = "FederationQueryType">
		<complexContent>
			<extension base = "tns:RegistryEntryQueryType">
				<sequence>
					<element ref = "tns:FederationFilter" minOccurs = "0" maxOccurs="1"/>
					<element ref = "tns:RegistryQuery" minOccurs = "0" maxOccurs = "unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "FederationQuery" type = "tns:FederationQueryType"/>

	<complexType name = "OrganizationQueryType">
		<complexContent>
			<extension base = "tns:RegistryObjectQueryType">
				<sequence>
					<element ref = "tns:OrganizationFilter" minOccurs = "0" maxOccurs="1"/>
					<element ref = "tns:PostalAddressFilter" minOccurs = "0" maxOccurs="1"/>
					<element ref = "tns:TelephoneNumberFilter" minOccurs = "0" maxOccurs="unbounded"/>
					<element ref = "tns:UserQuery" minOccurs = "0" maxOccurs = "1"/>
					<element ref = "tns:OrganizationParentBranch" minOccurs = "0" maxOccurs="1" />
					<element ref = "tns:OrganizationChildrenBranch" minOccurs = "0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "OrganizationQuery" type = "tns:OrganizationQueryType"/>
	<element name = "OrganizationParentBranch" type="tns:OrganizationQueryType" />
	<element name = "OrganizationChildrenBranch" type="tns:OrganizationQueryType" />

	<complexType name = "RegistryQueryType">
		<complexContent>
			<extension base = "tns:RegistryEntryQueryType">
				<sequence>
					<element ref = "tns:RegistryFilter" minOccurs = "0" maxOccurs="1"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "RegistryQuery" type = "tns:RegistryQueryType"/>

	<complexType name = "ServiceQueryType">
		<complexContent>
			<extension base = "tns:RegistryEntryQueryType">
				<sequence>
					<element ref = "tns:ServiceFilter" minOccurs = "0" maxOccurs="1"/>					
					<element ref = "tns:ServiceBindingBranch" minOccurs = "0" maxOccurs="unbounded"/>					
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "ServiceQuery" type = "tns:ServiceQueryType"/>

	<complexType name = "ServiceBindingBranchType">
		<sequence>
			<element ref = "tns:ServiceBindingFilter" minOccurs = "0" maxOccurs="1"/>
			<element ref = "tns:SpecificationLinkBranch" minOccurs = "0" maxOccurs="unbounded"/>					
			<element ref = "tns:ServiceBindingTargetBranch" minOccurs = "0" maxOccurs="1"/>
		</sequence>
	</complexType>
	<element name = "ServiceBindingBranch" type = "tns:ServiceBindingBranchType"/>
	<element name = "ServiceBindingTargetBranch" type = "tns:ServiceBindingBranchType"/>

	<element name = "SpecificationLinkBranch">
		<complexType>
			<sequence>
				<element ref = "tns:SpecificationLinkFilter" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:RegistryObjectQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:RegistryEntryQuery" minOccurs = "0" maxOccurs="1"/>
			</sequence>
		</complexType>
	</element>

	<complexType name = "SubscriptionQueryType">
		<complexContent>
			<extension base = "tns:RegistryObjectQueryType">
	                <sequence>
	                        <element ref = "tns:SubscriptionFilter" minOccurs = "0" maxOccurs="1"/>
	                </sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "SubscriptionQuery" type = "tns:SubscriptionQueryType"/>


	<complexType name = "UserQueryType">
		<complexContent>
			<extension base = "tns:RegistryObjectQueryType">
	                <sequence>
	                        <element ref = "tns:UserFilter" minOccurs = "0" maxOccurs="1"/>
	                        <element ref = "tns:EmailAddressFilter" minOccurs = "0" maxOccurs="unbounded"/>
	                        <element ref = "tns:PostalAddressFilter" minOccurs = "0" maxOccurs="1"/>
	                        <element ref = "tns:PersonNameFilter" minOccurs = "0" maxOccurs="1"/>
	                        <element ref = "tns:TelephoneNumberFilter" minOccurs = "0" maxOccurs="unbounded"/>
	                </sequence>
			</extension>
		</complexContent>
	</complexType >
	<element name = "UserQuery" type = "tns:UserQueryType"/>

	<element name = "FilterQueryResult" >
		<complexType>
			<choice minOccurs = "1" maxOccurs = "1">
				<element ref = "tns:RegistryObjectQueryResult"/>
				<element ref = "tns:RegistryEntryQueryResult"/>
				<element ref = "tns:AssociationQueryResult"/>
				<element ref = "tns:AuditableEventQueryResult"/>
				<element ref = "tns:ClassificationQueryResult"/>
				<element ref = "tns:ClassificationNodeQueryResult"/>
				<element ref = "tns:ClassificationSchemeQueryResult"/>
				<element ref = "tns:RegistryPackageQueryResult"/>
				<element ref = "tns:ExtrinsicObjectQueryResult"/>
				<element ref = "tns:OrganizationQueryResult"/>
				<element ref = "tns:ServiceQueryResult"/>
				<element ref = "tns:FederationQueryResult"/>
				<element ref = "tns:RegistryQueryResult"/>
				<element ref = "tns:SubscriptionQueryResult"/>
				<element ref = "tns:UserQueryResult"/>
			</choice>
		</complexType>
	</element>

	<element name = "RegistryObjectQueryResult" type = "rim:RegistryObjectListType"/>

	<element name = "RegistryEntryQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:ClassificationScheme"/>
				<element ref = "rim:ExtrinsicObject"/>
				<element ref = "rim:RegistryEntry"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:RegistryPackage"/>
				<element ref = "rim:Service"/>
			</choice>
		</complexType>
	</element>

	<element name = "AssociationQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:Association"/>
			</choice>
		</complexType>
	</element>

	<element name = "AuditableEventQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:AuditableEvent"/>
			</choice>
		</complexType>
	</element>
	
	<element name = "ClassificationQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:Classification"/>
			</choice>
		</complexType>
	</element>

	<element name = "ClassificationNodeQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:ClassificationNode"/>
			</choice>
		</complexType>
	</element>
	
	<element name = "ClassificationSchemeQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:RegistryEntry"/>
				<element ref = "rim:ClassificationScheme"/>
			</choice>
		</complexType>
	</element>

	<element name = "RegistryPackageQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryEntry"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:RegistryPackage"/>
			</choice>
		</complexType>
	</element>

	<element name = "ExtrinsicObjectQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:RegistryEntry"/>
				<element ref = "rim:ExtrinsicObject"/>
			</choice>
		</complexType>
	</element>

	<element name = "FederationQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:RegistryEntry"/>
				<element ref = "rim:Federation"/>
			</choice>
		</complexType>
	</element>

	<element name = "OrganizationQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:Organization"/>
			</choice>
		</complexType>
	</element>

	<element name = "RegistryQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:RegistryEntry"/>
				<element ref = "rim:Registry"/>
			</choice>
		</complexType>
	</element>

	<element name = "ServiceQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:RegistryEntry"/>
				<element ref = "rim:Service"/>
			</choice>
		</complexType>
	</element>

	<element name = "SubscriptionQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:Subscription"/>
			</choice>
		</complexType>
	</element>

	<element name = "UserQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:User"/>
			</choice>
		</complexType>
	</element>

	<complexType name = "AssociationBranchType">
		<sequence>
			<element ref = "tns:AssociationFilter" minOccurs = "0" maxOccurs="1"/>
			<choice minOccurs = "0" maxOccurs="1">
				<element ref = "tns:ExternalIdentifierFilter" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:RegistryObjectQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:RegistryEntryQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:AssociationQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:ClassificationQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:ClassificationSchemeQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:ClassificationNodeQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:OrganizationQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:AuditableEventQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:RegistryPackageQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:ExtrinsicObjectQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:ServiceQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:FederationQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:RegistryQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:SubscriptionQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:UserQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:ServiceBindingBranch" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:SpecificationLinkBranch" minOccurs = "0" maxOccurs="1"/>
			</choice>
		</sequence>
	</complexType>
	<element name = "SourceAssociationBranch" type="tns:AssociationBranchType" />
	<element name = "TargetAssociationBranch" type="tns:AssociationBranchType" />

	<element name = "ClassifiedByBranch">
		<complexType>
			<sequence>
				<element ref = "tns:ClassificationFilter" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:ClassificationSchemeQuery" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:ClassificationNodeQuery" minOccurs = "0" maxOccurs="1"/>
			</sequence>
		</complexType>
	</element>

	<element name = "SlotBranch">
		<complexType>
			<sequence>
				<element ref = "tns:SlotFilter" minOccurs = "0" maxOccurs="1"/>
				<element ref = "tns:SlotValueFilter" minOccurs = "0" maxOccurs = "unbounded"/>
			</sequence>
		</complexType>
	</element>
	
	<complexType name = "FilterType">
		<sequence>
			<element ref = "tns:Clause"/>
		</sequence>
	</complexType>


	<element name = "RegistryObjectFilter" type = "tns:FilterType"/>
	<element name = "RegistryEntryFilter" type = "tns:FilterType"/>
	<element name = "ExtrinsicObjectFilter" type = "tns:FilterType"/>
	<element name = "RegistryPackageFilter" type = "tns:FilterType"/>
	<element name = "OrganizationFilter" type = "tns:FilterType"/>
	<element name = "ClassificationNodeFilter" type = "tns:FilterType"/>
	<element name = "AssociationFilter" type = "tns:FilterType"/>
	<element name = "ClassificationFilter" type = "tns:FilterType"/>
	<element name = "ClassificationSchemeFilter" type = "tns:FilterType"/>
	<element name = "ExternalLinkFilter" type = "tns:FilterType"/>
	<element name = "ExternalIdentifierFilter" type = "tns:FilterType"/>
	<element name = "SlotFilter" type = "tns:FilterType"/>
	<element name = "AuditableEventFilter" type = "tns:FilterType"/>
	<element name = "UserFilter" type = "tns:FilterType"/>
	<element name = "SlotValueFilter" type = "tns:FilterType"/>
	<element name = "PostalAddressFilter" type = "tns:FilterType"/>
	<element name = "TelephoneNumberFilter" type = "tns:FilterType"/>
	<element name = "EmailAddressFilter" type = "tns:FilterType"/>
	<element name = "ServiceFilter" type = "tns:FilterType"/>					
	<element name = "ServiceBindingFilter" type = "tns:FilterType"/>
	<element name = "SpecificationLinkFilter" type = "tns:FilterType"/>
	<element name = "LocalizedStringFilter" type = "tns:FilterType"/>
	<element name = "FederationFilter" type = "tns:FilterType"/>
	<element name = "PersonNameFilter" type = "tns:FilterType"/>
	<element name = "RegistryFilter" type = "tns:FilterType"/>
	<element name = "SubscriptionFilter" type = "tns:FilterType"/>

	<element name = "Clause">
		<annotation>
			<documentation xml:lang = "en">
The following lines define the XML syntax for Clause.

			</documentation>
		</annotation>
		<complexType>
			<choice>
				<element ref = "tns:SimpleClause"/>
				<element ref = "tns:CompoundClause"/>
			</choice>
		</complexType>
	</element>
	<element name = "SimpleClause">
		<complexType>
			<choice>
				<element ref = "tns:BooleanClause"/>
				<element ref = "tns:RationalClause"/>
				<element ref = "tns:StringClause"/>
			</choice>
			<attribute name = "leftArgument" use = "required" type = "string"/>
		</complexType>
	</element>
	<element name = "CompoundClause">
		<complexType>
			<sequence>
				<element ref = "tns:Clause" maxOccurs = "unbounded"/>
			</sequence>
			<attribute name = "connectivePredicate" use = "required">
				<simpleType>
					<restriction base = "NMTOKEN">
						<enumeration value = "And"/>
						<enumeration value = "Or"/>
					</restriction>
				</simpleType>
			</attribute>
		</complexType>
	</element>
	<element name = "BooleanClause">
		<complexType>
			<attribute name = "booleanPredicate" use = "required" type = "boolean"/>
		</complexType>
	</element>
	<element name = "RationalClause">
		<complexType>
			<choice>
				<element ref = "tns:IntClause"/>
				<element ref = "tns:FloatClause"/>
				<element ref = "tns:DateTimeClause"/>
			</choice>
			<attribute name = "logicalPredicate" use = "required">
				<simpleType>
					<restriction base = "NMTOKEN">
						<enumeration value = "LE"/>
						<enumeration value = "LT"/>
						<enumeration value = "GE"/>
						<enumeration value = "GT"/>
						<enumeration value = "EQ"/>
						<enumeration value = "NE"/>
					</restriction>
				</simpleType>
			</attribute>
		</complexType>
	</element>
	<element name = "IntClause" type = "integer"/>
	<element name = "FloatClause" type = "float"/>
	<element name = "DateTimeClause" type = "dateTime"/>

	<element name = "StringClause">
		<complexType>
			<simpleContent>
				<extension base = "string">
					<attribute name = "stringPredicate" use = "required">
						<simpleType>
							<restriction base = "NMTOKEN">
								<enumeration value = "Contains"/>
								<enumeration value = "-Contains"/>
								<enumeration value = "StartsWith"/>
								<enumeration value = "-StartsWith"/>
								<enumeration value = "Like"/>
								<enumeration value = "Equal"/>
								<enumeration value = "-Equal"/>
								<enumeration value = "EndsWith"/>
								<enumeration value = "-EndsWith"/>
							</restriction>
						</simpleType>
					</attribute>
				</extension>
			</simpleContent>
		</complexType>
	</element>
	
	<element name = "GetContentRequest">
		<annotation>
			<documentation xml:lang = "en">
Gets the actual content (not metadata) specified by the ObjectRefList
			</documentation>
		</annotation>

		<complexType>
                    <complexContent>
                        <extension base = "rs:RegistryRequestType">
                            <sequence>
                                    <element ref = "rim:ObjectRefList" minOccurs="1" maxOccurs="1"/>
                            </sequence>
                        </extension>
                    </complexContent>
		</complexType>
	</element>

	<element name = "GetContentResponse">
		<annotation>
			<documentation xml:lang = "en">
The GetContentResponse will have no sub-elements if there were no errors.
The actual contents will be in the other payloads of the message.  
			</documentation>
		</annotation>
		<complexType>
			<complexContent>
				<extension base = "rs:RegistryResponseType">
				</extension>
			</complexContent>
		</complexType>
	</element>
  
	<element name = "GetNotificationsRequest">
		<complexType>
			<complexContent>
				<extension base = "rs:RegistryRequestType">
            <!--The id for the request/subscription that resulted in this notification-->
            <attribute name = "subscription" use = "optional" type="anyURI" />
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name = "NotificationType">
		<annotation>
			<documentation>
Abstract Base type for all types of Notifications.
			</documentation>
		</annotation>

		<complexContent>
                        <!--Might be unsolicited and not a response to a request-->
			<extension base = "rs:RegistryResponseType">
                                <!--The id for the request/subscription that resulted in this notification-->
                                <attribute name = "subscription" use = "optional" type="anyURI" />
			</extension>
		</complexContent>
	</complexType>      
	<element name = "Notification" type = "tns:NotificationType"/>
        
	<complexType name = "ObjectRefsNotificationType">
		<annotation>
			<documentation xml:lang = "en">
An ActionType that notifies the recipient
by providing light weight references to the RegistryObjects of interest.
Client must retrieve the objects separately if needed.
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:NotificationType">
				<sequence>
					<element ref="rim:ObjectRefList" minOccurs="1" maxOccurs="1"/> 					
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "ObjectRefsNotification" type = "tns:ObjectRefsNotificationType"/>

	<complexType name = "ObjectsNotificationType">
		<annotation>
			<documentation xml:lang = "en">
An ActionType that notifies the recipient
by providing the actual RegistryObjects of interest..
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:NotificationType">
				<sequence>
					<element ref="rim:RegistryObjectList" minOccurs="1" maxOccurs="1"/> 					
				</sequence>
			</extension>
		</complexContent>
	</complexType>	
	<element name = "ObjectsNotification" type = "tns:ObjectsNotificationType"/>
    
	
</schema>
<?xml version = "1.0" encoding = "UTF-8"?>

<!--$Revision: 1.6 $-->
<schema xmlns = "http://www.w3.org/2001/XMLSchema"
	 targetNamespace = "urn:oasis:names:tc:ebxml-regrep:lcm:xsd:3.0"
	 xmlns:tns = "urn:oasis:names:tc:ebxml-regrep:lcm:xsd:3.0"
	 xmlns:rim = "urn:oasis:names:tc:ebxml-regrep:rim:xsd:3.0" 	 
	 xmlns:rs = "urn:oasis:names:tc:ebxml-regrep:rs:xsd:3.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:3.0" 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:3.0" 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 = "NMTOKEN">
								<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>
<?xml version = "1.0" encoding = "UTF-8"?>

<!--$Revision: 1.20 $-->
<schema xmlns = "http://www.w3.org/2001/XMLSchema"
        xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
        targetNamespace = "urn:oasis:names:tc:ebxml-regrep:rim:xsd:3.0"
        xmlns:tns = "urn:oasis:names:tc:ebxml-regrep:rim:xsd:3.0"
	>
	<annotation>
		<documentation xml:lang = "en">The schema for OASIS ebXML Registry Information Model</documentation>
	</annotation>	
	
        <import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd" />

  	<!--Begin information model mapping from ebRIM.-->
	
	<!--Define Data Types -->
	<simpleType name = "String4">
		<restriction base = "string">
			<maxLength value = "4" />
		</restriction>
	</simpleType>	
	
	<simpleType name = "String8">
		<restriction base = "string">
			<maxLength value = "8" />
		</restriction>
	</simpleType>	

	<simpleType name = "String16">
		<restriction base = "string">
			<maxLength value = "16" />
		</restriction>
	</simpleType>	

	<simpleType name = "String32">
		<restriction base = "string">
			<maxLength value = "32" />
		</restriction>
	</simpleType>	

	<simpleType name = "ShortName">
		<restriction base = "string">
			<maxLength value = "64" />
		</restriction>
	</simpleType>	

	<simpleType name = "LongName">
		<restriction base = "string">
			<maxLength value = "128" />
		</restriction>
	</simpleType>	

	<simpleType name = "FreeFormText">
		<restriction base = "string">
			<maxLength value = "256" />
		</restriction>
	</simpleType>	

        <complexType name="SignatureListType">
            <sequence>
                <element ref="dsig:Signature" minOccurs="1" maxOccurs="unbounded" />
            </sequence>
        </complexType>
        <element name="SignatureList" type="tns:SignatureListType" />
        
        
	<complexType name = "AssociationType1">
		<annotation>
			<documentation xml:lang = "en">
Association is the mapping of the same named interface in ebRIM.
It extends RegistryObject.

An Association specifies references to two previously submitted
registry entrys.

The sourceObject is id of the sourceObject in association
The targetObject is id of the targetObject in association
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryObjectType">
				<attribute name = "associationType" use = "required" type = "anyURI"/>
				<attribute name = "sourceObject" use = "required" type = "anyURI"/>
				<attribute name = "targetObject" use = "required" type = "anyURI"/>
				<attribute name = "isConfirmedBySourceOwner" use = "optional" type = "boolean"/>
				<attribute name = "isConfirmedByTargetOwner" use = "optional" type = "boolean"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "Association" type = "tns:AssociationType1"/>

	<complexType name = "AuditableEventType">
		<annotation>
			<documentation xml:lang = "en">
An Event that forms an audit trail in ebXML Registry.
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryObjectType">
				<sequence>
					<!--List of all objects that have been effected by this event-->
					<element name="affectedObject" type="tns:ObjectRefListType" minOccurs="1" maxOccurs="1"/>
				</sequence>

				<!--Was an enumeration in V2. Now is extensible-->
				<attribute name = "eventType" use = "required" type = "tns:LongName"/>

				<attribute name = "timestamp" use = "required" type = "dateTime"/>
				<attribute name = "user" use = "required" type = "anyURI"/>

				<attribute name = "requestId" use = "required" type = "anyURI"/>
			</extension>
		</complexContent>
	</complexType>

	<element name = "AuditableEvent" type = "tns:AuditableEventType"/>

	<complexType name = "ClassificationType">
		<annotation>
			<documentation xml:lang = "en">
Classification is the mapping of the same named interface in ebRIM.
It extends RegistryObject.

A Classification specifies references to two registry entrys.

The classifiedObject is id of the Object being classified.
The classificationNode is id of the ClassificationNode classying the object
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryObjectType">
				<attribute name = "classificationScheme" use = "optional" type = "anyURI"/>
				<attribute name = "classifiedObject" use = "required" type = "anyURI"/>
				<attribute name = "classificationNode" use = "optional" type = "anyURI"/>
				<attribute name = "nodeRepresentation" use = "optional" type = "tns:LongName"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "Classification" type = "tns:ClassificationType"/>

	<complexType name = "ClassificationNodeType">
		<annotation>
			<documentation xml:lang = "en">
ClassificationNode is the mapping of the same named interface in ebRIM.
It extends RegistryObject.

ClassificationNode is used to submit a Classification tree to the Registry.

The parent attribute is the id to the parent node. code is an optional code value for a ClassificationNode
often defined by an external taxonomy (e.g. NAICS)
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryObjectType">

				<sequence>
					<element ref="tns:ClassificationNode" minOccurs="0" maxOccurs="unbounded" />
				</sequence>
				<attribute name = "parent" use="optional" type = "anyURI"/>
				<attribute name = "code" use="optional" type = "tns:LongName"/>
				<attribute name = "path" use = "optional" type = "string"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "ClassificationNode" type = "tns:ClassificationNodeType"/>

	<complexType name = "ClassificationSchemeType">
		<annotation>
			<documentation xml:lang = "en">
ClassificationScheme is the mapping of the same named interface in ebRIM.
It extends RegistryEntry.
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryEntryType">
				<sequence>
					<element ref = "tns:ClassificationNode" minOccurs = "0" maxOccurs = "unbounded"/>
				</sequence>
				<attribute name = "isInternal" use = "required" type = "boolean"/>
				<attribute name = "nodeType" use = "required">
					<simpleType>
						<restriction base = "NMTOKEN">
							<enumeration value = "UniqueCode"/>
							<enumeration value = "EmbeddedPath"/>
							<enumeration value = "NonUniqueCode"/>
						</restriction>
					</simpleType>
				</attribute>
			</extension>
		</complexContent>
	</complexType>
	<element name = "ClassificationScheme" type = "tns:ClassificationSchemeType"/>

	<complexType name = "ExternalIdentifierType">
		<annotation>
			<documentation xml:lang = "en">
ExternalIdentifier is the mapping of the same named interface in ebRIM.
It extends RegistryObject.
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryObjectType">
				<attribute name = "registryObject" use = "optional" type = "anyURI"/>
				<attribute name = "identificationScheme" use = "required" type = "anyURI"/>
				<attribute name = "value" use = "required" type = "tns:LongName"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "ExternalIdentifier" type = "tns:ExternalIdentifierType"/>

	<complexType name = "ExternalLinkType">
		<annotation>
			<documentation xml:lang = "en">
ExternalLink is the mapping of the same named interface in ebRIM.
It extends RegistryObject.
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryObjectType">
				<attribute name = "externalURI" use="required" type = "anyURI"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "ExternalLink" type = "tns:ExternalLinkType"/>

	<complexType name = "ExtrinsicObjectType">
		<annotation>
			<documentation xml:lang = "en">
ExtrinsicObject are attributes from the ExtrinsicObject interface in ebRIM.
It inherits RegistryEntryAttributes
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryEntryType">
				<attribute name = "mimeType" default="application/octet-stream" type = "tns:LongName"/>
				<attribute name = "isOpaque" default = "false" type = "boolean"/>
			</extension>
		</complexContent>
	</complexType>
	
	<!--Following element decl nneds to be lower case but using upper camel case for backward compatibility-->
	
	<element name = "ExtrinsicObject" type = "tns:ExtrinsicObjectType"/>
	<element name = "Address" type = "tns:PostalAddressType"/>

	<complexType name = "OrganizationType">
		<annotation>
			<documentation xml:lang = "en">
Mapping of the same named interface in ebRIM.
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryObjectType">
				<sequence minOccurs = "1" maxOccurs = "1">
					<element ref = "tns:Address" minOccurs = "1" maxOccurs = "1"/>
					<element ref = "tns:TelephoneNumber" minOccurs = "1" maxOccurs = "unbounded"/>
					<element ref = "tns:EmailAddress" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
				<attribute name = "parent" type = "anyURI"/>
				<attribute name = "primaryContact" use = "required" type = "anyURI"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "Organization" type = "tns:OrganizationType"/>

	<complexType name = "SlotType1">
		<sequence>
			<element ref = "tns:ValueList" minOccurs = "1" maxOccurs="1"/>
		</sequence>
		<attribute name = "name" use = "required" type = "tns:LongName"/>
		<attribute name = "slotType" use = "optional" type = "tns:LongName"/>
	</complexType>
	<element name = "Slot" type = "tns:SlotType1"/>

	<complexType name = "ValueListType">
		<sequence minOccurs = "0" maxOccurs = "unbounded">
			<element ref = "tns:Value" />
		</sequence>
	</complexType>
	<element name = "ValueList" type = "tns:ValueListType"/>
	<element name = "Value" type = "tns:LongName"/>

	<complexType name = "SlotListType">
		<sequence>
			<element ref = "tns:Slot" minOccurs = "0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<element name = "SlotList" type = "tns:SlotListType"/>


	<complexType name = "PersonNameType">
		<annotation>
			<documentation xml:lang = "en">
Mapping of the same named interface in ebRIM.
			</documentation>
		</annotation>
		<sequence minOccurs = "0" maxOccurs = "unbounded">
			<element ref = "tns:Slot"/>
		</sequence>
		<attribute name = "firstName" use = "optional"  type = "tns:ShortName"/>
		<attribute name = "middleName" use = "optional" type = "tns:ShortName"/>
		<attribute name = "lastName" use = "optional" type = "tns:ShortName"/>
	</complexType>
	<element name = "PersonName" type = "tns:PersonNameType"/>

	<complexType name = "EmailAddressType">
		<annotation>
			<documentation xml:lang = "en">
Mapping of the same named interface in ebRIM.
			</documentation>
		</annotation>
		<sequence minOccurs = "0" maxOccurs = "unbounded">
			<element ref = "tns:Slot"/>
		</sequence>
		<attribute name = "address" use = "required" type = "tns:ShortName"/>
		<attribute name = "type" use = "optional" type = "tns:String32"/>
	</complexType>
	<element name = "EmailAddress" type = "tns:EmailAddressType"/>


	<complexType name = "PostalAddressType">
		<annotation>
			<documentation xml:lang = "en">
Mapping of the same named interface in ebRIM.
			</documentation>
		</annotation>
		<sequence minOccurs = "0" maxOccurs = "unbounded">
			<element ref = "tns:Slot"/>
		</sequence>
		<attribute name = "city" use = "optional" type = "tns:ShortName"/>
		<attribute name = "country" use = "optional" type = "tns:ShortName"/>
		<attribute name = "postalCode" use = "optional" type = "tns:ShortName"/>
		<attribute name = "stateOrProvince" use = "optional" type = "tns:ShortName"/>
		<attribute name = "street" use = "optional" type = "tns:ShortName"/>
		<attribute name = "streetNumber" use = "optional" type = "tns:String32"/>
	</complexType>
	<element name = "PostalAddress" type = "tns:PostalAddressType"/>

	<complexType name = "RegistryEntryType">
		<complexContent>
			<extension base = "tns:RegistryObjectType">
				<attribute name = "expiration" use = "optional" type = "dateTime"/>
				<attribute name = "majorVersion" default = "1" type = "integer"/>
				<attribute name = "minorVersion" default = "0" type = "integer"/>
				<attribute name = "stability" use = "optional">
					<simpleType>
						<restriction base = "NMTOKEN">
							<enumeration value = "Dynamic"/>
							<enumeration value = "DynamicCompatible"/>
							<enumeration value = "Static"/>
						</restriction>
					</simpleType>
				</attribute>

				<attribute name = "status">
					<simpleType>
						<restriction base = "NMTOKEN">
							<enumeration value = "Submitted"/>
							<enumeration value = "Approved"/>
							<enumeration value = "Deprecated"/>
							<enumeration value = "Withdrawn"/>
						</restriction>
					</simpleType>
				</attribute>
				<attribute name = "userVersion" use = "optional" type = "tns:ShortName"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "RegistryEntry" type = "tns:RegistryEntryType"/>
	
	<complexType name = "InternationalStringType">
		<sequence minOccurs = "0" maxOccurs = "unbounded">
			<element ref = "tns:LocalizedString" />
		</sequence>
	</complexType>
	<element name = "InternationalString" type = "tns:InternationalStringType"/>

	<complexType name = "LocalizedStringType">
		<attribute name = "lang" default = "en-US" form = "qualified" type = "language"/>
		<attribute name = "charset" default = "UTF-8" />
		<attribute name = "value" use = "required" type = "tns:FreeFormText"/>
	</complexType>
	<element name = "LocalizedString" type = "tns:LocalizedStringType"/>

	<complexType name = "RegistryObjectType">
		<annotation>
			<documentation xml:lang = "en">
id may be empty. If specified it may be in urn:uuid format or be in some
arbitrary format. If id is empty registry must generate globally unique id.

If id is provided and in proper UUID syntax (starts with urn:uuid:) 
registry will honour it.

If id is provided and is not in proper UUID syntax then it is used for
linkage within document and is ignored by the registry. In this case the
registry generates a UUID for id attribute.

id must not be null when object is being retrieved from the registry.

			</documentation>
		</annotation>
		<sequence minOccurs = "0" maxOccurs = "1">
			<element ref = "tns:Name" minOccurs = "0" maxOccurs = "1"/>
			<element ref = "tns:Description" minOccurs = "0" maxOccurs = "1"/>
			<element ref = "tns:Slot" minOccurs = "0" maxOccurs = "unbounded"/>
			<element ref = "tns:Classification" minOccurs = "0" maxOccurs = "unbounded"/>
			<element ref = "tns:ExternalIdentifier" minOccurs = "0" maxOccurs = "unbounded"/>
		</sequence>
		<attribute name = "accessControlPolicy" use = "optional" type = "anyURI"/>
		<attribute name = "id" type = "anyURI"/>

		<!--home attribute is required only for replicas of remote Objects-->
		<attribute name = "home" type = "anyURI" use="optional"/>

		<attribute name = "objectType" use = "optional" type = "anyURI"/>
	</complexType>
	<element name = "RegistryObject" type = "tns:RegistryObjectType"/>
	<element name = "Name" type = "tns:InternationalStringType" />
	<element name = "Description" type = "tns:InternationalStringType" />

	<complexType name = "RegistryPackageType">
		<annotation>
			<documentation xml:lang = "en">
RegistryPackage is the mapping of the same named interface in ebRIM.
It extends RegistryEntry.

A RegistryPackage is a named collection of objects.
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryEntryType">
				<sequence>
					<element ref = "tns:RegistryObjectList" minOccurs="0" maxOccurs="1"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name = "RegistryPackage" type = "tns:RegistryPackageType"/>

	<complexType name = "ServiceType">
		<complexContent>
			<extension base = "tns:RegistryEntryType">
				<sequence>
					<element ref = "tns:ServiceBinding" minOccurs = "0" maxOccurs = "unbounded"/>
				</sequence>				
			</extension>
		</complexContent>
	</complexType>
	<element name = "Service" type = "tns:ServiceType"/>

	<complexType name = "ServiceBindingType">
		<complexContent>
			<extension base = "tns:RegistryObjectType">
				<sequence>
					<element ref = "tns:SpecificationLink" minOccurs = "0" maxOccurs = "unbounded"/>
				</sequence>
				
				<attribute name = "service" use = "optional" type = "anyURI"/>
				<attribute name = "accessURI" use="optional" type = "anyURI"/>
				<attribute name = "targetBinding" use="optional" type = "anyURI"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "ServiceBinding" type = "tns:ServiceBindingType"/>

	<complexType name = "SpecificationLinkType">
		<complexContent>
			<extension base = "tns:RegistryObjectType">
				<sequence minOccurs = "0" maxOccurs = "1">
					<element ref = "tns:UsageDescription" minOccurs = "0" maxOccurs="1" />
					<element ref = "tns:UsageParameter" minOccurs = "0" maxOccurs="unbounded" />
				</sequence>
				<attribute name = "specificationObject" use="required" type = "anyURI"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "SpecificationLink" type = "tns:SpecificationLinkType"/>
	<element name = "UsageDescription" type = "tns:InternationalStringType"  />
	<element name = "UsageParameter" type = "tns:FreeFormText" />
	
	<complexType name = "TelephoneNumberType">
		<annotation>
			<documentation xml:lang = "en">
TelephoneNumber is the mapping of the same named interface in ebRIM.
			</documentation>
		</annotation>
		<attribute name = "areaCode" use = "optional" type = "tns:String8"/>
		<attribute name = "countryCode" use = "optional" type = "tns:String8"/>
		<attribute name = "extension" use = "optional" type = "tns:String8"/>
		<attribute name = "number" use = "optional" type = "tns:String16"/>
		<attribute name = "phoneType" use = "optional" type = "tns:String32"/>
		<attribute name = "url" use = "optional" type = "anyURI"/>
	</complexType>
	<element name = "TelephoneNumber" type = "tns:TelephoneNumberType"/>
	<element name = "FaxNumber" type = "tns:TelephoneNumberType"/>
	<element name = "MobileTelephoneNumber" type = "tns:TelephoneNumberType"/>
	<element name = "PagerNumber" type = "tns:TelephoneNumberType"/>

	<complexType name = "TelephoneNumberListType">
		<sequence>
			<element ref = "tns:TelephoneNumber" minOccurs = "0" maxOccurs = "unbounded"/>
		</sequence>
	</complexType>

	<complexType name = "UserType">
		<annotation>
			<documentation xml:lang = "en">
Mapping of the same named interface in ebRIM.
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryObjectType">
				<sequence minOccurs="1" maxOccurs = "1">
					<element ref = "tns:Address" minOccurs="1" maxOccurs="unbounded"/>
					<element ref = "tns:PersonName" minOccurs="1" maxOccurs="1"/>
					<element ref = "tns:TelephoneNumber" minOccurs="1" maxOccurs="unbounded"/>
					<element ref = "tns:EmailAddress" minOccurs="1" maxOccurs="unbounded"/>
				</sequence>
				<attribute name = "url" use = "optional" type = "anyURI"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "User" type = "tns:UserType"/>

	<complexType name = "RegistryType">
		<annotation>
			<documentation xml:lang = "en">
Mapping of the same named interface in ebRIM.
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryEntryType">
			    <attribute name = "operator" use = "required" type = "anyURI"/>
                            <attribute name = "specificationVersion" use = "required" type = "string"/>
                            <attribute name = "replicationSyncLatency"  default= "P1D" type = "duration"/>
                            <attribute name = "catalogingLatency" default= "P1D" type = "duration"/>

                            <!--Optional features supported -->
                            <attribute name = "sqlQuerySupported" default = "false" type = "boolean"/>
                            <attribute name = "eventNotificationSupported" default = "false" type = "boolean"/>
                            <attribute name = "objectReplicationSupported" default = "false" type = "boolean"/>
                            <attribute name = "objectRelocationSupported" default = "false" type = "boolean"/>
                                
			</extension>
		</complexContent>
	</complexType>
	<element name = "Registry" type = "tns:RegistryType"/>
        
	<complexType name = "FederationType">
		<annotation>
			<documentation xml:lang = "en">
Mapping of the same named interface in ebRIM.
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryEntryType">
				<sequence>
					<element name = "Members" type = "tns:ObjectRefListType"/>
				</sequence>

				<attribute name = "replicationSyncLatency" use = "required" type = "duration"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "Federation" type = "tns:FederationType"/>
  
  
	<complexType name = "AdhocQueryType" abstract="true">
		<annotation>
			<documentation xml:lang = "en">
The common base type for all types of Adh hoc queries.
			</documentation>
		</annotation>
        
    <complexContent>
    <extension base = "tns:RegistryObjectType">
    </extension>
    </complexContent>
	</complexType>
       
	<element name = "Subscription">
		<annotation>
			<documentation xml:lang = "en">
A Subscription for specified Events in an ebXML V3+ registry.
			</documentation>
		</annotation>
		<complexType>
			<complexContent>
				<extension base = "tns:RegistryObjectType">
					<sequence>
						<element name = "Selector" type="tns:SelectorType"/>
						<element name = "Action" type="tns:ActionType" maxOccurs="unbounded"/>
					</sequence>
					<attribute name = "startDate" use = "optional" type = "dateTime"/>
					<attribute name = "endDate" use = "optional" type = "dateTime"/>
					<attribute name = "notificationInterval" use = "optional" type="duration" /> 
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name = "SelectorType" abstract="true">
		<annotation>
			<documentation xml:lang = "en">
Abstract Base type for all types of Selectors.
			</documentation>
		</annotation>
	</complexType>

	<complexType name = "QuerySelectorType">
		<annotation>
			<documentation xml:lang = "en">
Selector that uses a constrained AdhocQueryRequest.
Need to decide how to constrain implementation complexity here.
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:SelectorType">
                            <sequence>
                                <element name="Query" type="tns:AdhocQueryType" minOccurs="1" maxOccurs="1"/>		
                            </sequence>
			</extension>
		</complexContent>
	</complexType>

	<complexType name = "ActionType" abstract="true">
		<annotation>
			<documentation>
Abstract Base type for all types of Actions.
			</documentation>
		</annotation>
	</complexType>

	<complexType name = "NotifyActionType" abstract="true">
		<annotation>
			<documentation xml:lang = "en">
Abstract Base type for all types of Notify Actions
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:ActionType">
				<attribute name = "notificationOption" default="ObjectRefs">
					<simpleType>
						<restriction base = "NMTOKEN">
							<enumeration value = "ObjectRefs"/>
							<enumeration value = "Objects"/>
						</restriction>
					</simpleType>
				</attribute>
			</extension>
		</complexContent>
	</complexType>

	<complexType name = "ListenerNotifyActionType">
		<annotation>
			<documentation xml:lang = "en">
An ActionType that notifies the specified ServiceBinding
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:NotifyActionType">
				<sequence>
                                        <!-- Service interface is defined by RegistryClient interface, uses method onResponse to deliver NotificationType -->
					<element name="service" type="tns:ObjectRefType" minOccurs="1" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>

	<complexType name = "EmailNotifyActionType">
		<annotation>
			<documentation xml:lang = "en">
An ActionType that notifies by sending email to specified email address
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:NotifyActionType">
				<sequence>
					<element ref="tns:EmailAddress" minOccurs="1" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
  
  
	<complexType name = "ObjectRefType">
		<annotation>
			<documentation xml:lang = "en"> 
Use to reference an Object by its id.
Specifies the id attribute of the object as its id attribute.
id attribute in ObjectAttributes is exactly the same syntax and semantics as
id attribute in RegistryObject.
			</documentation>
		</annotation>
		<attribute name = "id" type = "anyURI" use="required"/>

		<!--home attribute is required only for remote ObjectRef-->
		<attribute name = "home" type = "anyURI" use="optional"/>

		<!--When true and is a remote ObjectRef then the registry must create a replica for this ObjectRef -->
		<attribute name = "createReplica" type = "boolean" default="false"/>
	</complexType>
	<element name = "ObjectRef" type = "tns:ObjectRefType"/>


	<complexType name = "ObjectRefListType">
		<sequence minOccurs = "0" maxOccurs = "unbounded">
			<element ref = "tns:ObjectRef"/>
		</sequence>
	</complexType>
	<element name = "ObjectRefList" type="tns:ObjectRefListType"/>


	<complexType name = "RegistryObjectListType">  
    <sequence>
      <element name="RegistryObject" type="tns:RegistryObjectType" minOccurs="0" maxOccurs="unbounded"/>
      <element ref="tns:ObjectRef" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
	</complexType>
	<element name = "RegistryObjectList" type = "tns:RegistryObjectListType"/>  	
	
</schema>
<?xml version = "1.0" encoding = "UTF-8"?>

<!--$Revision: 1.14 $-->
<schema xmlns = "http://www.w3.org/2001/XMLSchema"
	 targetNamespace = "urn:oasis:names:tc:ebxml-regrep:rs:xsd:3.0"
	 xmlns:tns = "urn:oasis:names:tc:ebxml-regrep:rs:xsd:3.0"
	 xmlns:rim = "urn:oasis:names:tc:ebxml-regrep:rim:xsd:3.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:3.0" schemaLocation="rim.xsd"/>

	<complexType name = "RegistryRequestType">
		<annotation>
			<documentation xml:lang = "en">
Base type for all ebXML Registry requests
			</documentation>
		</annotation>

                <sequence>
                    <!-- every request may be signed. -->
                    <element ref="rim:SignatureList" minOccurs = "0" maxOccurs="1"/>
                    
                    <!-- every request may be extended using Slots. -->
                    <element name = "RequestSlotList" type="rim:SlotListType" minOccurs = "0" maxOccurs="1"/>
                </sequence>
                
		<!--Needed for async case. In case of sync request/response you may not need id. -->
		<attribute name = "id" use = "optional" type = "anyURI"/>
	</complexType>
		
	<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>

	<complexType name = "RegistryResponseType">
		<annotation>
			<documentation xml:lang = "en">
Base type for all ebXML Registry responses
			</documentation>
		</annotation>

                <sequence>
                    <!-- every response may be signed. -->
                    <element ref="rim:SignatureList" minOccurs = "0" maxOccurs="1"/>
                    
                    <!-- every response may be extended using Slots. -->
                    <element name = "ResponseSlotList" type="rim:SlotListType" minOccurs = "0" maxOccurs="1"/>
                
                    <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>
                
		<!--id is the request if for the request for which this is a response-->
		<attribute name = "requestId" use = "optional" type = "anyURI"/>
	</complexType>
	<element name = "RegistryResponse" type="tns:RegistryResponseType"/>

</schema>


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]