[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [regrep] Latest V3 schema distribution
Kathryn, Nikola and I have updated schema files for the following changes: -Move status from RegistryEntryType to RegistryObjectType -Remove accessControlPolicy from RegistryObjectType -Simplified Subscription model by removing SelectorType and QuerySelectorType and replaced with a selector attribute in SubscriptionType that is a ref to AdhocQueryType instance. -Simplified Subscription model by removing ListenerNotifyActionType and EmailNotifyActionType and adding an endPoint attribute in NotifyActionType that can be a URI to an email endpoint or a ref to a Service object. -Replaced NMTOKEN with NCName for retsricting enumerations to map better to programming languages. In this distribution, we have also for the first time updated the database.sql file for all known V3 changes. This is a major task that is completed for the V3 release! Team, please review these files and send your comments on this thread. Thanks. To help further testing and development, please place the attached files at the locations specified below on our web site. *.xsd => http://www.oasis-open.org/committees/regrep/documents/3.0/schema *.sql => http://www.oasis-open.org/committees/regrep/documents/3.0/sql Please note that the locations above are the pre-Kavi locations. I do not see them on our web site any more. We need to sort this out right away. Please send me coordinates for who to talk to about this. Thanks. -- Regards, Farrukh
<?xml version = "1.0" encoding = "UTF-8"?> <!--$Revision: 1.21 $--> <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 = "NCName"> <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 = "NCName"> <enumeration value = "Dynamic"/> <enumeration value = "DynamicCompatible"/> <enumeration value = "Static"/> </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 = "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"/> <attribute name = "status"> <simpleType> <restriction base = "NCName"> <enumeration value = "Submitted"/> <enumeration value = "Approved"/> <enumeration value = "Deprecated"/> <enumeration value = "Withdrawn"/> </restriction> </simpleType> </attribute> </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 = "Action" type="tns:ActionType" maxOccurs="unbounded"/> </sequence> <!--Ref to a AdhocQueryType instance --> <attribute name = "selector" type = "anyURI" use="required"/> <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 = "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 = "NCName"> <enumeration value = "ObjectRefs"/> <enumeration value = "Objects"/> </restriction> </simpleType> </attribute> <attribute name = "endPoint" type = "anyURI" use="required"/> </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.7 $--> <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 = "NCName"> <enumeration value = "DeleteAll"/> <enumeration value = "DeleteRepositoryItemOnly"/> </restriction> </simpleType> </attribute> </extension> </complexContent> </complexType> </element> <element name = "RelocateObjectsRequest"> <complexType> <complexContent> <extension base = "rs:RegistryRequestType"> <sequence> <element name="Query" type="rim:AdhocQueryType" minOccurs="1" maxOccurs="1"/> <element name = "SourceRegistry" type = "rim:ObjectRefType" minOccurs = "1" maxOccurs = "1"/> <element name = "DestinationRegistry" type = "rim:ObjectRefType" minOccurs = "1" maxOccurs = "1"/> <element name = "OwnerAtSource" type = "rim:ObjectRefType" minOccurs = "1" maxOccurs = "1"/> <element name = "OwnerAtDestination" type = "rim:ObjectRefType" minOccurs = "1" maxOccurs = "1"/> </sequence> </extension> </complexContent> </complexType> </element> <element name = "AcceptObjectsRequest"> <!--The ObjectRefList must only contain local ObjectRefs such that they do not specify home attribute --> <complexType> <complexContent> <extension base = "rs:RegistryRequestType"> <attribute name = "correlationId" use = "required" type = "anyURI"/> </extension> </complexContent> </complexType> </element> </schema>
<?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: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 = "NCName"> <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 = "NCName"> <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>
<?xml version = "1.0" encoding = "UTF-8"?> <!--$Revision: 1.17 $--> <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 = "NCName"> <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"/> <element ref = "rim:Federation"/> <element ref = "rim:Registry"/> </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: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: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 = "NCName"> <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 = "NCName"> <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 = "NCName"> <enumeration value = "Contains"/> <enumeration value = "NotContains"/> <enumeration value = "StartsWith"/> <enumeration value = "NotStartsWith"/> <enumeration value = "Like"/> <enumeration value = "Equal"/> <enumeration value = "NotEqual"/> <enumeration value = "EndsWith"/> <enumeration value = "NotEndsWith"/> </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>
--$Revision: 1.15 $ --Normative SQL schema for ebXML Registry V3 CREATE TABLE Association ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, objectType VARCHAR(64) DEFAULT 'urn:uuid:69399ff8-ca2c-4637-baf0-a157b2466b90' CHECK (objectType = 'urn:uuid:69399ff8-ca2c-4637-baf0-a157b2466b90'), status VARCHAR(16) NOT NULL, --Association attributes associationType VARCHAR(64) NOT NULL, sourceObject VARCHAR(64) NOT NULL, targetObject VARCHAR(64) NOT NULL, isConfirmedBySourceOwner BOOLEAN DEFAULT false, isConfirmedByTargetOwner BOOLEAN DEFAULT false ); CREATE TABLE AuditableEvent ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:1945f7e4-cf24-44fd-bbff-cd3d98e78674' CHECK (objectType = 'urn:uuid:1945f7e4-cf24-44fd-bbff-cd3d98e78674'), status VARCHAR(16) NOT NULL, --AuditableEvent attributes eventType VARCHAR(64) NOT NULL, timeStamp_ TIMESTAMP NOT NULL, user_ VARCHAR(64) NOT NULL ); CREATE TABLE AffectedObject ( --Each row is a relationship between a RegistryObject and an AuditableEvent --Enables association of multiple effected RegistryObjects with an the AuditableEvent id VARCHAR(64) NOT NULL, eventId VARCHAR(64) NOT NULL, PRIMARY KEY (id, eventId) ); CREATE TABLE Classification ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:65e731a8-3325-4ac5-bd95-d71a277e3216' CHECK (objectType = 'urn:uuid:65e731a8-3325-4ac5-bd95-d71a277e3216'), status VARCHAR(16) NOT NULL, --Classification attributes. classificationNode VARCHAR(64), classificationScheme VARCHAR(64), classifiedObject VARCHAR(64) NOT NULL, nodeRepresentation VARCHAR(128) ); CREATE TABLE ClassificationNode ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:247edbdb-31e8-40bc-97bd-fd60497deabb' CHECK (objectType = 'urn:uuid:247edbdb-31e8-40bc-97bd-fd60497deabb'), status VARCHAR(16) NOT NULL, --ClassificationNode attributes code VARCHAR(128), parent VARCHAR(64), path VARCHAR(1024) ); CREATE TABLE ClassificationScheme ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:c8b3dd77-9290-4fa3-a01a-94514d8f89ee' CHECK (objectType = 'urn:uuid:c8b3dd77-9290-4fa3-a01a-94514d8f89ee'), status VARCHAR(16) NOT NULL, --RegistryEntry attributes expiration TIMESTAMP, majorVersion INT DEFAULT 1 NOT NULL, minorVersion INT DEFAULT 0 NOT NULL, stability VARCHAR(128), userVersion VARCHAR(64), --ClassificationScheme attributes isInternal BOOLEAN DEFAULT false NOT NULL, nodeType VARCHAR(32) DEFAULT 'UniqueCode' NOT NULL ); CREATE TABLE ExternalIdentifier ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:8280e1b1-84ac-4bca-a0ee-8d7ffe2f2333' CHECK (objectType = 'urn:uuid:8280e1b1-84ac-4bca-a0ee-8d7ffe2f2333'), status VARCHAR(16) NOT NULL, --ExternalIdentifier attributes registryObject VARCHAR(64) NOT NULL, identificationScheme VARCHAR(64) NOT NULL, value VARCHAR(128) NOT NULL ); CREATE TABLE ExternalLink ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), --Not including CHECK as it is legal to specify a different objectType for ExternalLink objectType VARCHAR(64) DEFAULT 'urn:uuid:9c442a04-8eb6-4595-82c4-d4f96d001409', status VARCHAR(16) NOT NULL, --ExternalLink attributes externalURI VARCHAR(256) NOT NULL ); CREATE TABLE ExtrinsicObject ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:baa2e6c8-873e-4624-8f2d-b9c7230eb4f8', status VARCHAR(16) NOT NULL, --RegistryEntry attributes expiration TIMESTAMP, majorVersion INT DEFAULT 0 NOT NULL, minorVersion INT DEFAULT 1 NOT NULL, stability VARCHAR(128), userVersion VARCHAR(64), --ExtrinsicObject attributes isOpaque BOOLEAN DEFAULT false, mimeType VARCHAR(128) DEFAULT 'application/octet-stream' ); CREATE TABLE Federation ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:e21b23a1-e34b-4fc1-b878-a73f5598c74b' CHECK (objectType = 'urn:uuid:e21b23a1-e34b-4fc1-b878-a73f5598c74b'), status VARCHAR(16) NOT NULL, --RegistryEntry attributes expiration TIMESTAMP, majorVersion INT DEFAULT 0 NOT NULL, minorVersion INT DEFAULT 1 NOT NULL, stability VARCHAR(128), userVersion VARCHAR(64), --Federation attributes: currently none defined --xsd:duration stored in string form since no corresponding SQL type. Is 32 long enough? replicationSyncLatency VARCHAR(64) DEFAULT 'P1D' ); CREATE TABLE Name ( --LocalizedString attributes flattened for Name charset VARCHAR(32), lang VARCHAR(32) NOT NULL, value VARCHAR(256) NOT NULL, --The RegistryObject id for the parent RegistryObject for which this is a Name parent VARCHAR(64) NOT NULL, PRIMARY KEY (parent, lang, value) ); CREATE TABLE Description ( --LocalizedString attributes flattened for Description charset VARCHAR(32), lang VARCHAR(32) NOT NULL, value VARCHAR(256) NOT NULL, --The RegistryObject id for the parent RegistryObject for which this is a Name parent VARCHAR(64) NOT NULL, PRIMARY KEY (parent, lang, value) ); CREATE TABLE UsageDescription ( --LocalizedString attributes flattened for UsageDescription charset VARCHAR(32), lang VARCHAR(32) NOT NULL, value VARCHAR(256) NOT NULL, --The RegistryObject id for the parent RegistryObject for which this is a Name parent VARCHAR(64) NOT NULL, PRIMARY KEY (parent, lang, value) ); CREATE TABLE Organization ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:c7219bab-f78f-4340-b02a-e493617c6952' CHECK (objectType = 'urn:uuid:c7219bab-f78f-4340-b02a-e493617c6952'), status VARCHAR(16) NOT NULL, --Organization attributes --Organization.address attribute is in PostalAddress table parent VARCHAR(64), --primary contact for Organization, points to a User. primaryContact VARCHAR(64) NOT NULL --Organization.telephoneNumbers attribute is in TelephoneNumber table --Organization.emailAddresses attribute is in EmailAddress table ); CREATE TABLE RegistryPackage ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:ca61fbb7-80b2-40d3-95df-b0b9e2694c2a' CHECK (objectType = 'urn:uuid:ca61fbb7-80b2-40d3-95df-b0b9e2694c2a'), status VARCHAR(16) NOT NULL, --RegistryEntry attributes expiration TIMESTAMP, majorVersion INT DEFAULT 0 NOT NULL, minorVersion INT DEFAULT 1 NOT NULL, stability VARCHAR(128), userVersion VARCHAR(64) --RegistryPackage attributes: currently none defined ); CREATE TABLE PostalAddress ( city VARCHAR(64), country VARCHAR(64), postalCode VARCHAR(64), state VARCHAR(64), street VARCHAR(64), streetNumber VARCHAR(32), --The parent object that this is an address for parent VARCHAR(64) NOT NULL ); CREATE TABLE EmailAddress ( address VARCHAR(64) NOT NULL, type VARCHAR(64), --The parent object that this is an email address for parent VARCHAR(64) NOT NULL ); CREATE TABLE Registry ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:52b8100a-01ff-4e30-a326-8905e438ca4f' CHECK (objectType = 'urn:uuid:52b8100a-01ff-4e30-a326-8905e438ca4f'), status VARCHAR(16) NOT NULL, --RegistryEntry attributes expiration TIMESTAMP, majorVersion INT DEFAULT 0 NOT NULL, minorVersion INT DEFAULT 1 NOT NULL, stability VARCHAR(128), userVersion VARCHAR(64), --Registry attributes: currently none defined --xsd:duration stored in string form since no corresponding SQL type. Is 32 long enough? catalogingSyncLatency VARCHAR(32) DEFAULT 'P1D', eventNotificationSupported BOOLEAN DEFAULT false, objectRelocationSupported BOOLEAN DEFAULT false, objectReplicationSupported BOOLEAN DEFAULT false, operator VARCHAR(64) NOT NULL, --xsd:duration stored in string form since no corresponding SQL type. Is 32 long enough? replicationSyncLatency VARCHAR(32) DEFAULT 'P1D', specificationVersion VARCHAR(8), sqlQuerySupported BOOLEAN DEFAULT false ); CREATE TABLE Service ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:52fc5536-c38f-4e89-b661-9664fa1f592f' CHECK (objectType = 'urn:uuid:52fc5536-c38f-4e89-b661-9664fa1f592f'), status VARCHAR(16) NOT NULL, --RegistryEntry attributes expiration TIMESTAMP, majorVersion INT DEFAULT 0 NOT NULL, minorVersion INT DEFAULT 1 NOT NULL, stability VARCHAR(128), userVersion VARCHAR(64) --Service attributes: currently none defined ); CREATE TABLE ServiceBinding ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:3495faba-e699-411a-acfd-efecabc9ef48' CHECK (objectType = 'urn:uuid:3495faba-e699-411a-acfd-efecabc9ef48'), status VARCHAR(16) NOT NULL, --ServiceBinding attributes service VARCHAR(64) NOT NULL, accessURI VARCHAR(256), targetBinding VARCHAR(64) ); --Multiple rows of Slot make up a single Slot CREATE TABLE Slot ( name VARCHAR(128) NOT NULL, slotType VARCHAR(128), value VARCHAR(128), --The parent RegistryObject that this is a Slot for parent VARCHAR(64) NOT NULL, PRIMARY KEY (parent, name) ); CREATE TABLE SpecificationLink ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:124b974f-503e-4f40-9223-91e161631eb8' CHECK (objectType = 'urn:uuid:124b974f-503e-4f40-9223-91e161631eb8'), status VARCHAR(16) NOT NULL, --SpecificationLink attributes service VARCHAR(64) NOT NULL, serviceBinding VARCHAR(64) NOT NULL, specificationObject VARCHAR(64) NOT NULL ); CREATE TABLE Subscription ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:a5fab058-55de-4c9b-9263-9c5de09112f1' CHECK (objectType = 'urn:uuid:a5fab058-55de-4c9b-9263-9c5de09112f1'), status VARCHAR(16) NOT NULL, --Subscription attributes selector VARCHAR(64) NOT NULL, endDate TIMESTAMP, --xsd:duration stored in string form since no corresponding SQL type. Is 32 long enough? notificationInterval VARCHAR(32) DEFAULT P1D, startDate TIMESTAMP, ); CREATE TABLE NotifyAction ( notificationOption VARCHAR(16), --Either a ref to a Service, a String representing an email address in form: mailto:user@server, --or a String representing an http URLin form: http://url endPoint VARCHAR(64) NOT NULL, --Parent Subscription reference parent VARCHAR(64) NOT NULL ); CREATE TABLE AdhocQuery ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:ccac6140-ce43-4d83-b067-f44d303f7c4c' CHECK (objectType = 'ccac6140-ce43-4d83-b067-f44d303f7c4c'), status VARCHAR(16) NOT NULL, --AdhocQuery attributes query VARCHAR(1024) NOT NULL ); CREATE TABLE UsageParameter ( value VARCHAR(256) NOT NULL, --The parent SpecificationLink that this is a usage parameter for parent VARCHAR(64) NOT NULL ); CREATE TABLE TelephoneNumber ( areaCode VARCHAR(8), countryCode VARCHAR(8), extension VARCHAR(8), number VARCHAR(16), phoneType VARCHAR(64), url VARCHAR(256), parent VARCHAR(64) NOT NULL ); CREATE TABLE User_ ( --RegistryObject Attributes accessControlPolicy VARCHAR(64), id VARCHAR(64) NOT NULL PRIMARY KEY, home VARCHAR(128), objectType VARCHAR(64) DEFAULT 'urn:uuid:6d07b299-10e7-408f-843d-bb2bc913bfbb' CHECK (objectType = 'urn:uuid:6d07b299-10e7-408f-843d-bb2bc913bfbb'), status VARCHAR(16) NOT NULL, --User attributes --address is in PostalAddress table --emails is in EmailAddress table --personName flattened personName_firstName VARCHAR(64), personName_middleName VARCHAR(64), personName_lastName VARCHAR(64), --telephoneNumbers is in TelephoneNumber table url VARCHAR(256) ); CREATE VIEW RegistryObject ( --RegistryObject Attributes accessControlPolicy, id, home, objectType, status ) AS SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM AdhocQuery UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM Association UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM AuditableEvent UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM Classification UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM ClassificationNode UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM ClassificationScheme UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM ExternalIdentifier UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM ExternalLink UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM ExtrinsicObject UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM Federation UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM Organization UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM Registry UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM RegistryPackage UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM Service UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM ServiceBinding UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM SpecificationLink UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM Subscription UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status FROM User_ ; CREATE VIEW RegistryEntry ( --RegistryObject Attributes accessControlPolicy, id, home, objectType, status, --RegistryEntry attributes expiration, majorVersion, minorVersion, stability, userVersion ) AS SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status, --RegistryEntry attributes expiration, majorVersion, minorVersion, stability, userVersion FROM ClassificationScheme UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status, --RegistryEntry attributes expiration, majorVersion, minorVersion, stability, userVersion FROM ExtrinsicObject UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status, --RegistryEntry attributes expiration, majorVersion, minorVersion, stability, userVersion FROM Federation UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status, --RegistryEntry attributes expiration, majorVersion, minorVersion, stability, userVersion FROM Registry UNION SELECT --RegistryObject Attributes accessControlPolicy, id, home, objectType, status --RegistryEntry attributes expiration, majorVersion, minorVersion, stability, userVersion FROM RegistryPackage; --Following is a partial list of indexes. Will need to add more. --id index CREATE INDEX id_AdhocQuery_index ON AdhocQuery(id); CREATE INDEX id_Association_index ON Association(id); CREATE INDEX id_AuditableEvent_index ON AuditableEvent(id); CREATE INDEX id_Classification_index ON Classification(id); CREATE INDEX id_ClassificationNode_index ON ClassificationNode(id); CREATE INDEX id_ClassificationScheme_index ON ClassificationScheme(id); CREATE INDEX id_ExternalIdentifier_index ON ExternalIdentifier(id); CREATE INDEX id_ExternalLink_index ON ExternalLink(id); CREATE INDEX id_ExtrinsicObject_index ON ExtrinsicObject(id); CREATE INDEX id_Federation_index ON Federation(id); CREATE INDEX id_Organization_index ON Organization(id); CREATE INDEX id_Registry_index ON Registry(id); CREATE INDEX id_RegistryPackage_index ON RegistryPackage(id); CREATE INDEX id_Service_index ON Service(id); CREATE INDEX id_ServiceBinding_index ON ServiceBinding(id); CREATE INDEX id_SpecificationLink_index ON SpecificationLink(id); CREATE INDEX id_Subscription_index ON Subscription(id); CREATE INDEX id_User_index ON User_(id); --home index CREATE INDEX home_AdhocQuery_index ON AdhocQuery(home); CREATE INDEX home_Association_index ON Association(home); CREATE INDEX home_AuditableEvent_index ON AuditableEvent(home); CREATE INDEX home_Classification_index ON Classification(home); CREATE INDEX home_ClassificationNode_index ON ClassificationNode(home); CREATE INDEX home_ClassificationScheme_index ON ClassificationScheme(home); CREATE INDEX home_ExternalIdentifier_index ON ExternalIdentifier(home); CREATE INDEX home_ExternalLink_index ON ExternalLink(home); CREATE INDEX home_ExtrinsicObject_index ON ExtrinsicObject(home); CREATE INDEX home_Federation_index ON Federation(home); CREATE INDEX home_Organization_index ON Organization(home); CREATE INDEX home_Registry_index ON Registry(home); CREATE INDEX home_RegistryPackage_index ON RegistryPackage(home); CREATE INDEX home_Service_index ON Service(home); CREATE INDEX home_ServiceBinding_index ON ServiceBinding(home); CREATE INDEX home_SpecificationLink_index ON SpecificationLink(home); CREATE INDEX home_Subscription_index ON Subscription(home); CREATE INDEX home_User_index ON User_(home); --name index CREATE INDEX value_Name_index ON Name(value); CREATE INDEX lang_value_Name_index ON Name(lang, value); --description index CREATE INDEX value_Description_index ON Description(value); CREATE INDEX lang_value_Description_index ON Description(lang, value); --UsageDescription index CREATE INDEX value_UsageDescription_index ON UsageDescription(value); CREATE INDEX lang_value_UsageDescription_index ON UsageDescription(lang, value); --Indexes on Association CREATE INDEX sourceObject_Association_index ON Association(sourceObject); CREATE INDEX targetObject_Association_index ON Association(targetObject); CREATE INDEX associationType_Association_index ON Association(associationType); --Indexes on Classification CREATE INDEX classifiedObject_Classification_index ON Classification(classifiedObject); CREATE INDEX classificationNode_Classification_index ON Classification(classificationNode); --Indexes on ClassificationNode CREATE INDEX parent_ClassificationNode_index ON ClassificationNode(parent); CREATE INDEX code_ClassificationNode_index ON ClassificationNode(code); CREATE INDEX path_ClassificationNode_index ON ClassificationNode(path); --Indexes on ExternalIdentifier CREATE INDEX registryObject_ExternalIdentifier_index ON ExternalIdentifier(registryObject); --Indexes on ExternalLink CREATE INDEX externalURI_ExternalLink_index ON ExternalLink(externalURI); --Indexes on ExtrinsicObject --Indexes on Organization CREATE INDEX parent_Organization_index ON Organization(parent); --Indexes on PostalAddress CREATE INDEX parent_PostalAddress_index ON PostalAddress(parent); CREATE INDEX city_PostalAddress_index ON PostalAddress(city); CREATE INDEX country_PostalAddress_index ON PostalAddress(country); CREATE INDEX postalCode_PostalAddress_index ON PostalAddress(postalCode); --Indexes on EmailAddress CREATE INDEX parent_EmailAddress_index ON EmailAddress(parent); --Indexes on ServiceBinding CREATE INDEX service_ServiceBinding_index ON ServiceBinding(service); --Indexes on Slot CREATE INDEX parent_Slot_index ON Slot(parent); CREATE INDEX name_Slot_index ON Slot(name); --Indexes on SpecificationLink CREATE INDEX service_SpecificationLink_index ON SpecificationLink(service); CREATE INDEX serviceBinding_SpecificationLink_index ON SpecificationLink(serviceBinding); CREATE INDEX specificationObject_SpecificationLink_index ON SpecificationLink(specificationObject); --Indexes on TelephoneNumber CREATE INDEX parent_TelephoneNumber_index ON TelephoneNumber(parent); --Indexes on User CREATE INDEX personName_lastName_User_index ON User_(personName_lastName);
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]