<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:core="http://schema.omg.org/spec/CTS2/1.0/Core"
  xmlns:updates="http://schema.omg.org/spec/CTS2/1.0/Updates"
  xmlns:valueSet="http://schema.omg.org/spec/CTS2/1.0/ValueSet"
  xmlns:coreService="http://schema.omg.org/spec/CTS2/1.0/CoreService"
  xmlns:tns="http://schema.omg.org/spec/CTS2/1.0/wsdl/ValueSetCatalogMaintenanceServices"
  xmlns:valueSetService="http://schema.omg.org/spec/CTS2/1.0/ValueSetServices"
  attributeFormDefault="qualified"
  elementFormDefault="qualified"
  targetNamespace="http://schema.omg.org/spec/CTS2/1.0/wsdl/ValueSetCatalogMaintenanceServices">
  
  <xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/Core" schemaLocation="../core/Core.xsd"/>
  <xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/CoreService" schemaLocation="../core/CoreService.xsd"/>
  <xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/Updates" schemaLocation="../updates/Updates.xsd"/>
  <xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/ValueSetServices" schemaLocation="../valueset/ValueSetServices.xsd"/>
  <xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/ValueSet" schemaLocation="../valueset/ValueSet.xsd"/>
  <xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/wsdl/BaseServiceTypes" schemaLocation="BaseServiceTypes.xsd"/>
  <xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/wsdl/BaseQueryServiceTypes" schemaLocation="BaseQueryServiceTypes.xsd"/>
  <xs:import namespace="http://schema.omg.org/spec/CTS2/1.0/wsdl/UpdateServices" schemaLocation="UpdateServiceTypes.xsd"/>
  
  <xs:element name="listChanges" type="tns:listChanges"/>
  <xs:complexType name="listChanges">
    <xs:sequence>
      <xs:element minOccurs="0" name="fromDate" type="core:DateAndTime"/>
      <xs:element minOccurs="0" name="toDate" type="core:DateAndTime"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="listChangesResponse" type="tns:listChangesResponse"/>
  <xs:complexType name="listChangesResponse">
    <xs:sequence>
      <xs:element name="return" type="coreService:ChangeSetEntryList"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="putChangeSet" type="tns:putChangeSet"/>
  <xs:complexType name="putChangeSet">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="updates:ChangeSet"/>
      <xs:element minOccurs="0" name="errorResponse" type="coreService:ErrorResponse"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="putChangeSetResponse" type="tns:putChangeSetResponse"/>
  <xs:complexType name="putChangeSetResponse">
    <xs:sequence>
      <xs:element name="return" type="coreService:SuccessIndicator"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="updateChangeableMetadata" type="tns:updateChangeableMetadata"/>
  <xs:complexType name="updateChangeableMetadata">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
      <xs:element minOccurs="1" name="entryID" type="core:PersistentURI"/>
      <xs:element minOccurs="1" name="request" type="coreService:UpdateChangeableMetadataRequest"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="updateChangeableMetadataResponse" type="tns:updateChangeableMetadataResponse"/>
  <xs:complexType name="updateChangeableMetadataResponse">
    <xs:sequence>
      <xs:element name="return" type="core:Changeable"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="deleteChangeable" type="tns:deleteChangeable"/>
  <xs:complexType name="deleteChangeable">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
      <xs:element minOccurs="1" name="target" type="core:Changeable"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="deleteChangeableResponse" type="tns:deleteChangeableResponse"/>
  <xs:complexType name="deleteChangeableResponse">
    <xs:sequence/>
  </xs:complexType>
  
  <xs:element name="updateChangeSetMetadata" type="tns:updateChangeSetMetadata"/>
  <xs:complexType name="updateChangeSetMetadata">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
      <xs:element minOccurs="1" name="request" type="coreService:UpdateChangeSetMetadataRequest"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="updateChangeSetMetadataResponse" type="tns:updateChangeSetMetadataResponse"/>
  <xs:complexType name="updateChangeSetMetadataResponse">
    <xs:sequence/>
  </xs:complexType>
  
  <xs:element name="createChangeSet" type="tns:createChangeSet"/>
  <xs:complexType name="createChangeSet">
    <xs:sequence/>
  </xs:complexType>
  
  <xs:element name="createChangeSetResponse" type="tns:createChangeSetResponse"/>
  <xs:complexType name="createChangeSetResponse">
    <xs:sequence>
      <xs:element name="return" type="updates:ChangeSet"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="validateChangeSet" type="tns:validateChangeSet"/>
  <xs:complexType name="validateChangeSet">
    <xs:sequence>
      <xs:element minOccurs="1" name="validationLevel" type="coreService:ValidationLevel"/>
      <xs:element minOccurs="1" name="changeSet" type="updates:ChangeSet"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="validateChangeSetResponse" type="tns:validateChangeSetResponse"/>
  <xs:complexType name="validateChangeSetResponse">
    <xs:sequence>
      <xs:element name="return" type="coreService:ValidationResponse"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="updateValueSet" type="tns:updateValueSet"/>
  <xs:complexType name="updateValueSet">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
      <xs:element minOccurs="1" name="valueSet" type="coreService:NameOrURI"/>
      <xs:element minOccurs="1" name="request" type="valueSetService:UpdateValueSetRequest"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="updateValueSetResponse" type="tns:updateValueSetResponse"/>
  <xs:complexType name="updateValueSetResponse">
    <xs:sequence>
      <xs:element name="return" type="valueSet:ValueSetCatalogEntry"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="commitChangeSet" type="tns:commitChangeSet"/>
  <xs:complexType name="commitChangeSet">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="commitChangeSetResponse" type="tns:commitChangeSetResponse"/>
  <xs:complexType name="commitChangeSetResponse">
    <xs:sequence/>
  </xs:complexType>
  
  <xs:element name="createValueSet" type="tns:createValueSet"/>
  <xs:complexType name="createValueSet">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
      <xs:element minOccurs="1" name="uri" type="core:ExternalURI"/>
      <xs:element minOccurs="1" name="name" type="core:ValueSetName"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="createValueSetResponse" type="tns:createValueSetResponse"/>
  <xs:complexType name="createValueSetResponse">
    <xs:sequence>
      <xs:element name="return" type="valueSet:ValueSetCatalogEntry"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="readChangeSet" type="tns:readChangeSet"/>
  <xs:complexType name="readChangeSet">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
      <xs:element minOccurs="0" name="queryControl" type="coreService:QueryControl"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="readChangeSetResponse" type="tns:readChangeSetResponse"/>
  <xs:complexType name="readChangeSetResponse">
    <xs:sequence>
      <xs:element name="return" type="updates:ChangeSet"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="rollbackChangeSet" type="tns:rollbackChangeSet"/>
  <xs:complexType name="rollbackChangeSet">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="rollbackChangeSetResponse" type="tns:rollbackChangeSetResponse"/>
  <xs:complexType name="rollbackChangeSetResponse">
    <xs:sequence/>
  </xs:complexType>
  
  <xs:element name="readIteratableChangeSet" type="tns:readIteratableChangeSet"/>
  <xs:complexType name="readIteratableChangeSet">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
      <xs:element minOccurs="0" name="queryControl" type="coreService:QueryControl"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="readIteratableChangeSetResponse" type="tns:readIteratableChangeSetResponse"/>
  <xs:complexType name="readIteratableChangeSetResponse">
    <xs:sequence>
      <xs:element ref="updates:IteratableChangeSet"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="newProperty" type="tns:newProperty"/>
  <xs:complexType name="newProperty">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
      <xs:element minOccurs="0" name="queryControl" type="coreService:QueryControl"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="newPropertyResponse" type="tns:newPropertyResponse"/>
  <xs:complexType name="newPropertyResponse">
    <xs:sequence>
      <xs:element name="return" type="core:Property"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="newResourceTarget" type="tns:newResourceTarget"/>
  <xs:complexType name="newResourceTarget">
    <xs:sequence>
      <xs:element minOccurs="1" name="resource" type="core:ExternalURI"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="newResourceTargetResponse" type="tns:newResourceTargetResponse"/>
  <xs:complexType name="newResourceTargetResponse">
    <xs:sequence>
      <xs:element name="return" type="core:StatementTarget"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="newLiteralTarget" type="tns:newLiteralTarget"/>
  <xs:complexType name="newLiteralTarget">
    <xs:sequence>
      <xs:element minOccurs="1" name="literal" type="core:OpaqueData"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="newLiteralTargetResponse" type="tns:newLiteralTargetResponse"/>
  <xs:complexType name="newLiteralTargetResponse">
    <xs:sequence>
      <xs:element name="return" type="core:StatementTarget"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="newEntityReferenceTarget" type="tns:newEntityReferenceTarget"/>
  <xs:complexType name="newEntityReferenceTarget">
    <xs:sequence>
      <xs:element minOccurs="1" name="entity" type="coreService:EntityNameOrURI"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="newEntityReferenceTargetResponse" type="tns:newEntityReferenceTargetResponse"/>
  <xs:complexType name="newEntityReferenceTargetResponse">
    <xs:sequence>
      <xs:element name="return" type="core:StatementTarget"/>
    </xs:sequence>
  </xs:complexType>
  
</xs:schema>
