Keith,

Thanks very much for the fix you commited yesterday.

I tried it with the full schema I have (see attached rim.xsd, query.xsd, rs.xsd). The 
output
generated when compiled gave some new errors that all have to do with missing import 
statements
in a couple of generated files. Note that the 3 schema files are mapped to 3 packages 
as shown in attached
castorbuilder.properties files.

The compile errors were:

compile:
    [javac] Compiling 536 source files to C:\osws\ebxmlrr-spec\build\lib\classes

    [javac] C:\osws\ebxmlrr-spec\src\share\org\oasis\ebxml\registry\bindings\rs\
AdhocQueryRequest.java:36: cannot resolve symbol
    [javac] symbol  : class AdhocQueryRequestChoice
    [javac] location: class org.oasis.ebxml.registry.bindings.rs.AdhocQueryReque
st
    [javac]     private AdhocQueryRequestChoice _adhocQueryRequestChoice;
    [javac]             ^
    [javac] C:\osws\ebxmlrr-spec\src\share\org\oasis\ebxml\registry\bindings\rs\
AdhocQueryRequest.java:54: cannot resolve symbol
    [javac] symbol  : class AdhocQueryRequestChoice
    [javac] location: class org.oasis.ebxml.registry.bindings.rs.AdhocQueryReque
st
    [javac]     public AdhocQueryRequestChoice getAdhocQueryRequestChoice()
    [javac]            ^
    [javac] C:\osws\ebxmlrr-spec\src\share\org\oasis\ebxml\registry\bindings\rs\
AdhocQueryRequest.java:105: cannot resolve symbol
    [javac] symbol  : class AdhocQueryRequestChoice
    [javac] location: class org.oasis.ebxml.registry.bindings.rs.AdhocQueryReque
st
    [javac]     public void setAdhocQueryRequestChoice(AdhocQueryRequestChoice a
dhocQueryRequestChoice)
    [javac]                                            ^
    [javac] C:\osws\ebxmlrr-spec\src\share\org\oasis\ebxml\registry\bindings\rs\
AdhocQueryRequestDescriptor.java:99: cannot resolve symbol
    [javac] symbol  : class AdhocQueryRequestChoice
    [javac] location: class org.oasis.ebxml.registry.bindings.rs.AdhocQueryReque
stDescriptor
    [javac]         desc = new XMLFieldDescriptorImpl(AdhocQueryRequestChoice.cl
ass, "_adhocQueryRequestChoice", "-error-if-this-is-used-", NodeType.Element);
    [javac]                                           ^
    [javac] C:\osws\ebxmlrr-spec\src\share\org\oasis\ebxml\registry\bindings\rs\
AdhocQueryRequestDescriptor.java:112: cannot resolve symbol
    [javac] symbol: class AdhocQueryRequestChoice
    [javac]                     target.setAdhocQueryRequestChoice( (AdhocQueryRe
questChoice) value);
    [javac]                                                         ^
    [javac] C:\osws\ebxmlrr-spec\src\share\org\oasis\ebxml\registry\bindings\rs\
AdhocQueryRequestDescriptor.java:119: cannot resolve symbol
    [javac] symbol: class AdhocQueryRequestChoice
    [javac]                 return new AdhocQueryRequestChoice();
    [javac]                            ^
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -deprecation for details.
    [javac] 6 errors

BUILD FAILED



To work around the compile errors I had to add the following import statement:

import org.oasis.ebxml.registry.bindings.query.*;

In the following 2 files:

org.oasis.ebxml.registry.bindings.rs.AdhocQueryRequest
org.oasis.ebxml.registry.bindings.rs.AdhocQueryRequestDescriptor

I was able to generate the bindings classes, package them in a jar. When I tried to 
use compile my app
code using the bindings jar, I found that there were some classes that were 
incorrectly generated in multiple packages causing
ambiguity.

Please note that I had to use some unofficial patches I found in archive to make the 
above schema work. I am attaching the
following files I have modified for the unofficial patches. BTW I would gretaly 
appreciate having them get rolled into the code
stream soon.

M castor/src/main/org/exolab/castor/builder/TypeConversion.java
 Allows processing of xml:lang type.

M castor/src/main/org/exolab/castor/xml/schema/reader/ImportUnmarshaller.java
 Fixes problem with import involving http URLs

So where things stands right now, we are close. The problems I am aware of are:

1. Missing import statements. This is likely to do with lack of support for imports 
and a potentially partial
solution in the unooficial patch in ImportUnmarshaller.java.

2. Generating multiple copies of a class in multiple packages. This seems to be a new 
problem.

I have gotten beyong (1) after hand fixing the imports. I will fully qualify the class 
name for (2) to get around
the class name ambiguity and see if I am over the hump with my problems.

Let me know if I can provide more info. Thanks again for being so very helpful and 
responsive.


--
Regards,
Farrukh


Keith Visco wrote:

> Hi Farrukh,
>
> >
> > I did a cvs update in my CVS workspace before rebuilding the jar target. So as far 
>as ai Know I am working with the very
> > latest bits. The only exception is that I have a couple of files tweeked
> > for fixes that have not yet been rollled into castor. They are:
> >
> > M castor/src/main/org/exolab/castor/builder/TypeConversion.java
> >  Allows processing of xml:lang type.
> >
> > M castor/src/main/org/exolab/castor/xml/schema/reader/ImportUnmarshaller.java
> >  Fixes problem with import involving http URLs
> >
> > It is possible that I may not have accurately reflected what I was experiencing as 
>my mind may be getting a little numb from
> > looking at this problem.
>
> Well...you reported part of the problem, but there was really two
> problems that I noticed on my end...once I fixed the first problem (that
> I mentioned in my previous post) I ran into the second one which was
> what you reported. In any case your test case was a good one.
>
> Can you give it a try now? I added a couple patches to the CVS version.
> It fixes the problems I was seeing when I ran your test case, so
> hopefully all is well now.
>
> >
> > I really appreciate your looking into this issue during the holiday season.
>
> No problem...
>
> >
> >Happy new year.
> >
>
> Thanks...you too, have a great one!
>
> --Keith
>
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>         unsubscribe castor-dev


#
# Property file for SourceCodeGenerator
#
# $Id: castorbuilder.properties,v 1.1 2001/12/15 00:16:17 farrukh_najmi Exp $

# To enable bound properties uncomment the following line. Please
# note that currently *all* fields will be treated as bound properties
# when enabled. This will change in the future when we introduce
# fine grained control over each class and it's properties.
#
#org.exolab.castor.builder.boundproperties=true

# Java class mapping of <xsd:element>'s and <xsd:complexType>'s 
#
#org.exolab.castor.builder.javaclassmapping=element

# This property allows one to specify the super class of *all* 
# generated classes
#
#org.exolab.castor.builder.superclass=com.xyz.BaseObject

# XML namespace mapping to Java packages
#
org.exolab.castor.builder.nspackages=\
  urn:oasis:names:tc:ebxml-regrep:rim:xsd:2.0=org.oasis.ebxml.registry.bindings.rim,\
  
urn:oasis:names:tc:ebxml-regrep:query:xsd:2.0=org.oasis.ebxml.registry.bindings.query,\
  urn:oasis:names:tc:ebxml-regrep:registry:xsd:2.0=org.oasis.ebxml.registry.bindings.rs

# Set to true if you want to generate the equals method
# for each generated class
# false by default
#org.exolab.castor.builder.equalsmethod=true

# Set to true if you want to use Object Wrappers instead
# of primitives (e.g Float instead of float).
# false by default.
#org.exolab.castor.builder.primitivetowrapper=false

# Set to true if you want the generated class descriptors to
# expose the element and attribute names they contain.
# false by default.
#org.exolab.castor.builder.classdescfieldnames=false
<?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>
<?xml version = "1.0" encoding = "UTF-8"?>

<!--Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
<schema xmlns = "http://www.w3.org/2001/XMLSchema";
	 targetNamespace = "urn:oasis:names:tc:ebxml-regrep:query:xsd:2.0"
	 xmlns:tns = "urn:oasis:names:tc:ebxml-regrep:query:xsd:2.0"
	 xmlns:rim = "urn:oasis:names:tc:ebxml-regrep:rim:xsd:2.0">

	<!-- 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"/>
	
	<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 a query string as defined by [RS] in the queryString attribute

			</documentation>
		</annotation>
		<complexType>
			<sequence>
				<element ref = "tns:ResponseOption" minOccurs="1" maxOccurs="1" />
				<choice minOccurs="1" maxOccurs="1">
					<element ref = "tns:FilterQuery"/>
					<element ref = "tns:SQLQuery"/>
				</choice>
			</sequence>
		</complexType>
	</element>
	<element name = "SQLQuery" type = "string"/>

	<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>
			<choice minOccurs="1" maxOccurs="1">
				<element ref = "tns:FilterQueryResult"/>
				<element ref = "tns:SQLQueryResult"/>
			</choice>
		</complexType>
	</element>
	
	<element name = "SQLQueryResult" type = "rim:RegistryObjectListType"/>	

	<element name = "FilterQuery">
		<complexType>
			<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"/>
			</choice>
		</complexType>
	</element>
	
	<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 = "1"/>
					<element ref = "tns:RegistryEntryQuery" minOccurs = "0" maxOccurs = "1"/>
					<element ref = "tns:UserBranch" 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 = "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:UserBranch" 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 = "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>

	<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"/>
			</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 = "OrganizationQueryResult">
		<complexType>
			<choice minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "rim:ObjectRef"/>
				<element ref = "rim:RegistryObject"/>
				<element ref = "rim:Organization"/>
			</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>

	<complexType name = "AssociationBranchType">
		<sequence>
			<element ref = "tns:AssociationFilter" minOccurs = "0" maxOccurs="1"/>
			<choice minOccurs = "0" maxOccurs="1">
				<element ref = "tns:ExternalLinkFilter" 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:UserBranch" 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>
	
	<element name = "UserBranch">
	        <complexType>
	                <sequence>
	                        <element ref = "tns:UserFilter" minOccurs = "0" maxOccurs="1"/>
	                        <element ref = "tns:PostalAddressFilter" minOccurs = "0" maxOccurs="1"/>
	                        <element ref = "tns:TelephoneNumberFilter" minOccurs = "0" maxOccurs="unbounded"/>
	                        <element ref = "tns:EmailAddressFilter" minOccurs = "0" maxOccurs="unbounded"/>
	                        <element ref = "tns:OrganizationQuery" minOccurs = "0" maxOccurs="1"/>
	                </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 = "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 = "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>
			<sequence>
				<element ref = "rim:ObjectRefList" minOccurs="1" maxOccurs="1"/>
			</sequence>
		</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/>
	</element>
	
</schema>
<?xml version = "1.0" encoding = "UTF-8"?>
<!--Generated by XML Authority. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
<schema xmlns = "http://www.w3.org/2001/XMLSchema";
	 targetNamespace = "urn:oasis:names:tc:ebxml-regrep:rim:xsd:2.0"
	 xmlns:tns = "urn:oasis:names:tc:ebxml-regrep:rim:xsd:2.0"
	>
	<annotation>
		<documentation xml:lang = "en">The schema for OASIS ebXML Registry Information Model</documentation>
	</annotation>
	<!--$Header: /cvsroot/ebxmlrr/ebxmlrr-spec/misc/schema/rim.xsd,v 1.32 2001/12/28 19:01:42 farrukh_najmi Exp $-->
	
	
	<!--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 = "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 = "tns:LongName"/>
				<attribute name = "sourceObject" use = "required" type = "IDREF"/>
				<attribute name = "targetObject" use = "required" type = "IDREF"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "Association" type = "tns:AssociationType1"/>
	<complexType name = "AuditableEventType">
		<annotation>
			<documentation xml:lang = "en">
Mapping of the same named interface in ebRIM.
			</documentation>
		</annotation>
		<complexContent>
			<extension base = "tns:RegistryObjectType">
				<attribute name = "eventType" use = "required">
					<simpleType>
						<restriction base = "NMTOKEN">
							<enumeration value = "Created"/>
							<enumeration value = "Deleted"/>
							<enumeration value = "Deprecated"/>
							<enumeration value = "Updated"/>
							<enumeration value = "Versioned"/>
						</restriction>
					</simpleType>
				</attribute>
				<attribute name = "registryObject" use = "required" type = "IDREF"/>
				<attribute name = "timestamp" use = "required" type = "dateTime"/>
				<attribute name = "user" use = "required" type = "IDREF"/>
			</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 = "IDREF"/>
				<attribute name = "classifiedObject" use = "required" type = "IDREF"/>
				<attribute name = "classificationNode" use = "optional" type = "IDREF"/>
				<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 = "IDREF"/>
				<attribute name = "code" use="optional" type = "tns:ShortName"/>
			</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 = "identificationScheme" use = "required" type = "IDREF"/>
				<attribute name = "value" use = "required" type = "tns:ShortName"/>
			</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" type = "tns:LongName"/>
				<attribute name = "isOpaque" use = "optional" 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"/>
				</sequence>
				<attribute name = "parent" type = "IDREF"/>
				<attribute name = "primaryContact" use = "required" type = "IDREF"/>
			</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:ShortName"/>

	<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 = "IDREF"/>
		<attribute name = "id" type = "ID"/>
		<attribute name = "objectType" use = "optional" type = "tns:LongName"/>
	</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 = "accessURI" use="optional" type = "anyURI"/>
				<attribute name = "targetBinding" use="optional" type = "IDREF"/>
			</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 = "IDREF"/>
			</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:String4"/>
		<attribute name = "countryCode" use = "optional" type = "tns:String4"/>
		<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="0" maxOccurs = "1">
					<element ref = "tns:Address" minOccurs="1" maxOccurs="1"/>
					<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 = "organization" type = "IDREF"/>
				<attribute name = "url" use = "optional" type = "anyURI"/>
			</extension>
		</complexContent>
	</complexType>
	<element name = "User" type = "tns:UserType"/>

	<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 = "ID"/>
	</complexType>
	<element name = "ObjectRef" type = "tns:ObjectRefType"/>

	<element name = "ObjectRefList">
		<annotation>
			<documentation xml:lang = "en">A list of ObjectRefs</documentation>
		</annotation>
		<complexType>
			<sequence minOccurs = "0" maxOccurs = "unbounded">
				<element ref = "tns:ObjectRef"/>
			</sequence>
		</complexType>
	</element>


	<complexType name = "LeafRegistryObjectListType">
		<choice minOccurs = "0" maxOccurs = "unbounded">
			<element ref = "tns:ObjectRef"/>
			<element ref = "tns:Association"/>
			<element ref = "tns:AuditableEvent"/>
			<element ref = "tns:Classification"/>
			<element ref = "tns:ClassificationNode"/>
			<element ref = "tns:ClassificationScheme"/>
			<element ref = "tns:ExternalIdentifier"/>
			<element ref = "tns:ExternalLink"/>
			<element ref = "tns:ExtrinsicObject"/>
			<element ref = "tns:Organization"/>
			<element ref = "tns:RegistryPackage"/>
			<element ref = "tns:Service"/>
			<element ref = "tns:ServiceBinding"/>
			<element ref = "tns:SpecificationLink"/>
			<element ref = "tns:User"/>
		</choice>
	</complexType>
	<element name = "LeafRegistryObjectList" type = "tns:LeafRegistryObjectListType"/>
	
	<complexType name = "RegistryObjectListType">
		<complexContent>
			<extension base = "tns:LeafRegistryObjectListType">
				
					<choice minOccurs = "0" maxOccurs = "unbounded">
						<element ref = "tns:RegistryEntry" />
						<element ref = "tns:RegistryObject"/>
					</choice>
			</extension>
		</complexContent>
	</complexType>
	<element name = "RegistryObjectList" type = "tns:RegistryObjectListType"/>
	
	
</schema>

Attachment: TypeConversion.java
Description: application/unknown-content-type-javafile

Attachment: ImportUnmarshaller.java
Description: application/unknown-content-type-javafile

Reply via email to