<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:core="http://www.omg.org/spec/CTS2/1.1/Core"
  xmlns:coreService="http://www.omg.org/spec/CTS2/1.1/CoreService"
  xmlns:mapService="http://www.omg.org/spec/CTS2/1.1/MapServices"
  xmlns:updates="http://www.omg.org/spec/CTS2/1.1/Updates"
  xmlns:map="http://www.omg.org/spec/CTS2/1.1/MapCatalog"
  xmlns:mapVersion="http://www.omg.org/spec/CTS2/1.1/MapVersion"
  xmlns:mapVersionService="http://www.omg.org/spec/CTS2/1.1/MapVersionServices"
  xmlns:tns="http://www.omg.org/spec/CTS2/1.1/wsdl/MapVersionMaintenanceServices"
  attributeFormDefault="qualified"
  elementFormDefault="qualified"
  targetNamespace="http://www.omg.org/spec/CTS2/1.1/wsdl/MapVersionMaintenanceServices">
  
  <xs:import namespace="http://www.omg.org/spec/CTS2/1.1/Core" schemaLocation="../core/Core.xsd"/>
  <xs:import namespace="http://www.omg.org/spec/CTS2/1.1/CoreService" schemaLocation="../core/CoreService.xsd"/>
  <xs:import namespace="http://www.omg.org/spec/CTS2/1.1/MapServices" schemaLocation="../map/MapServices.xsd"/>
  <xs:import namespace="http://www.omg.org/spec/CTS2/1.1/Updates" schemaLocation="../updates/Updates.xsd"/>
  <xs:import namespace="http://www.omg.org/spec/CTS2/1.1/MapCatalog" schemaLocation="../map/Map.xsd"/>
  <xs:import namespace="http://www.omg.org/spec/CTS2/1.1/MapVersion" schemaLocation="../mapversion/MapVersion.xsd"/>
  <xs:import namespace="http://www.omg.org/spec/CTS2/1.1/MapVersionServices" schemaLocation="../mapversion/MapVersionServices.xsd"/>
  <xs:import namespace="http://www.omg.org/spec/CTS2/1.1/wsdl/BaseServiceTypes" schemaLocation="BaseServiceTypes.xsd"/>
  <xs:import namespace="http://www.omg.org/spec/CTS2/1.1/wsdl/BaseQueryServiceTypes" schemaLocation="BaseQueryServiceTypes.xsd"/>
  <xs:import namespace="http://www.omg.org/spec/CTS2/1.1/wsdl/UpdateServices" schemaLocation="UpdateServiceTypes.xsd"/>
  
  <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:element>
    </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="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="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:element>
    </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="createMapVersion" type="tns:createMapVersion"/>
  <xs:complexType name="createMapVersion">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
      <xs:element minOccurs="1" name="createParameters" type="mapVersionService:CreateMapVersionRequest"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="createMapVersionResponse" type="tns:createMapVersionResponse"/>
  <xs:complexType name="createMapVersionResponse">
    <xs:sequence>
      <xs:element ref="mapVersion:MapVersion"/>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="updateMapVersion" type="tns:updateMapVersion"/>
  <xs:complexType name="updateMapVersion">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
      <xs:element minOccurs="1" name="mapVersion" type="coreService:NameOrURI" />
      <xs:element minOccurs="1" name="updateRequest" type="mapVersionService:UpdateMapVersionRequest"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="updateMapVersionResponse" type="tns:updateMapVersionResponse"/>
  <xs:complexType name="updateMapVersionResponse">
    <xs:sequence>
      <xs:element ref="mapVersion:MapVersion"/>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="createMapEntry" type="tns:createMapEntry"/>
  <xs:complexType name="createMapEntry">
    <xs:sequence/>
  </xs:complexType>
  
  <xs:element name="createMapEntryResponse" type="tns:createMapEntryResponse"/>
  <xs:complexType name="createMapEntryResponse">
    <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="clone" type="tns:clone"/>
  <xs:complexType name="clone">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="core:ChangeSetURI"/>
      <xs:element minOccurs="1" name="resourceToClone" type="coreService:NameOrURI"/>
      <xs:element minOccurs="1" name="versionIdentifier" type="core:LocalIdentifier"/>
      <xs:element minOccurs="0" name="versionURI" type="core:DocumentURI"/>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="cloneResponse" type="tns:cloneResponse"/>
  <xs:complexType name="cloneResponse">
    <xs:sequence>
      <xs:element name="return" type="mapVersion:MapVersion"/>
    </xs:sequence>
  </xs:complexType>
  
  <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="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="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="validateChangeSet" type="tns:validateChangeSet"/>
  <xs:complexType name="validateChangeSet">
    <xs:sequence>
      <xs:element minOccurs="1" name="changeSet" type="updates:ChangeSet"/>
      <xs:element minOccurs="1" name="validationLevel" type="coreService:ValidationLevel"></xs:element>
    </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="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>
