
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >



<!-- ************************************************************************ -->
<!-- *                                                                      * -->
<!-- *                                                                      * -->
<!-- *                    Package: com.highdeal.bart.event                  * -->
<!-- *                                                                      * -->
<!-- *                                                                      * -->
<!-- ************************************************************************ -->

<!-- ====================================================================== -->
<!--  Class: com.highdeal.bart.event.AcquisitionTopic.AcquisitionStartEvent -->
<!-- ====================================================================== -->

<xs:element name="acquisition-start">
   <xs:complexType>
     <xs:attribute name="sessionID" type="xs:string"/>
     <xs:attribute name="startDate" type="xs:dateTime"/>
     <xs:attribute name="duration" type="xs:string"/>
     <xs:attribute name="nbCDRNew" type="xs:string"/>
     <xs:attribute name="nbCDRDuplicate" type="xs:string"/>
     <xs:attribute name="source" type="xs:string"/>
     <xs:attribute name="description" type="xs:string"/>
     <xs:attribute name="status" type="AcquisitionStartAcquisitionSessionStatusTypeType"/>
     <xs:attribute name="mode" type="AcquisitionStartAcquisitionModeType"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="AcquisitionStartAcquisitionSessionStatusTypeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="inProgress"/>
     <xs:enumeration value="ended"/>
     <xs:enumeration value="endedWithErrors"/>
     <xs:enumeration value="cleaned"/>
   </xs:restriction>
 </xs:simpleType>

<xs:simpleType name="AcquisitionStartAcquisitionModeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="acquire"/>
     <xs:enumeration value="acquireAndDeduplicate"/>
     <xs:enumeration value="acquireAndRejectDuplicate"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--  Class: com.highdeal.bart.event.AcquisitionTopic.AcquisitionStatusEvent -->
<!-- ====================================================================== -->

<xs:simpleType name="AcquisitionStatusSessionStatusTypeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="inProgress"/>
     <xs:enumeration value="ended"/>
     <xs:enumeration value="endedWithErrors"/>
     <xs:enumeration value="cleaned"/>
   </xs:restriction>
  </xs:simpleType>

<xs:simpleType name="AcquisitionStatusAcquisitionModeType">
   <xs:restriction base="xs:string"> 
     <xs:enumeration value="acquire"/> 
     <xs:enumeration value="acquireAndDeduplicate"/> 
     <xs:enumeration value="acquireAndRejectDuplicate"/> 
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--   Class: com.highdeal.bart.event.AcquisitionTopic.AcquisitionStopEvent -->
<!-- ====================================================================== -->

<xs:simpleType name="AcquisitionStopSessionStatusTypeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="inProgress"/>
     <xs:enumeration value="ended"/>
     <xs:enumeration value="endedWithErrors"/>
     <xs:enumeration value="cleaned"/>
   </xs:restriction>
  </xs:simpleType>

<xs:simpleType name="AcquisitionStopAcquisitionModeType">
   <xs:restriction base="xs:string"> 
     <xs:enumeration value="acquire"/> 
     <xs:enumeration value="acquireAndDeduplicate"/> 
     <xs:enumeration value="acquireAndRejectDuplicate"/> 
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--       Class: com.highdeal.bart.event.RatingTopic.RatingStartEvent      -->
<!-- ====================================================================== -->

<xs:element name="rating-start">
   <xs:complexType>
     <xs:attribute name="sessionID" type="xs:string"/>
     <xs:attribute name="batchRatingGroupId" type="xs:string"/>
     <xs:attribute name="startDate" type="xs:dateTime"/>
     <xs:attribute name="duration" type="xs:string"/>
     <xs:attribute name="mode" type="RatingStartModeType"/>
     <xs:attribute name="maxConsumptionDate" type="xs:dateTime"/>
     <xs:attribute name="nbCDRRated" type="xs:string"/>
     <xs:attribute name="nbCDRError" type="xs:string"/>
     <xs:attribute name="description" type="xs:string"/>
     <xs:attribute name="status" type="RatingStartSessionStatusTypeType"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="RatingStartSessionStatusTypeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="inProgress"/>
     <xs:enumeration value="ended"/>
     <xs:enumeration value="stopped"/>
     <xs:enumeration value="cleaned"/>
   </xs:restriction>
 </xs:simpleType>

<xs:simpleType name="RatingStartModeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="firstFail"/>
     <xs:enumeration value="most"/>
     <xs:enumeration value="try"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--       Class: com.highdeal.bart.event.RatingTopic.RatingStatusEvent     -->
<!-- ====================================================================== -->

<xs:element name="rating-status">
  <xs:complexType>
    <xs:attribute name="sessionID" type="xs:string"/>
    <xs:attribute name="batchRatingGroupId" type="xs:string"/>
    <xs:attribute name="startDate" type="xs:dateTime"/>
    <xs:attribute name="duration" type="xs:string"/>
    <xs:attribute name="mode" type="RatingStatusRatingModeType"/>
    <xs:attribute name="maxConsumptionDate" type="xs:dateTime"/>
    <xs:attribute name="nbCDRRated" type="xs:string"/>
    <xs:attribute name="nbCDRError" type="xs:string"/>
    <xs:attribute name="description" type="xs:string"/>
    <xs:attribute name="status" type="RatingStatusSessionStatusType"/>
    <xs:attribute name="eventDate" type="xs:dateTime"/>
  </xs:complexType>
</xs:element>

<xs:simpleType name="RatingStatusSessionStatusType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="inProgress"/>
     <xs:enumeration value="ended"/>
     <xs:enumeration value="stopped"/>
     <xs:enumeration value="cleaned"/>
   </xs:restriction>
 </xs:simpleType>

<xs:simpleType name="RatingStatusRatingModeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="firstFail"/>
     <xs:enumeration value="most"/>
     <xs:enumeration value="try"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--        Class: com.highdeal.bart.event.RatingTopic.RatingStopEvent      -->
<!-- ====================================================================== -->

<xs:element name="rating-stop">
  <xs:complexType>
    <xs:attribute name="sessionID" type="xs:string"/>
    <xs:attribute name="batchRatingGroupId" type="xs:string"/>
    <xs:attribute name="startDate" type="xs:dateTime"/>
    <xs:attribute name="duration" type="xs:string"/>
    <xs:attribute name="mode" type="RatingStopRatingModeType"/>
    <xs:attribute name="maxConsumptionDate" type="xs:dateTime"/>
    <xs:attribute name="nbCDRRated" type="xs:string"/>
    <xs:attribute name="nbCDRError" type="xs:string"/>
    <xs:attribute name="description" type="xs:string"/>
    <xs:attribute name="status" type="RatingStopSessionStatusType"/>
  </xs:complexType>
</xs:element>

<xs:simpleType name="RatingStopSessionStatusType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="inProgress"/>
     <xs:enumeration value="ended"/>
     <xs:enumeration value="stopped"/>
     <xs:enumeration value="cleaned"/>
   </xs:restriction>
 </xs:simpleType>

<xs:simpleType name="RatingStopRatingModeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="firstFail"/>
     <xs:enumeration value="most"/>
     <xs:enumeration value="try"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--  Class: com.highdeal.bart.event.SchedulableJobTopic.SchedulableJobStartEvent -->
<!-- ====================================================================== -->

<xs:element name="job-start">
   <xs:complexType>
     <xs:attribute name="jobID" type="xs:string"/>
     <xs:attribute name="description" type="xs:string"/>
     <xs:attribute name="jobClassName" type="xs:string"/>
     <xs:attribute name="startDate" type="xs:dateTime"/>
     <xs:attribute name="duration" type="xs:string"/>
     <xs:attribute name="eventDate" type="xs:dateTime"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--  Class: com.highdeal.bart.event.SchedulableJobTopic.SchedulableJobStatusEvent -->
<!-- ====================================================================== -->

<xs:element name="job-status"> 
   <xs:complexType>
     <xs:attribute name="jobID" type="xs:string"/>
     <xs:attribute name="description" type="xs:string"/>
     <xs:attribute name="jobClassName" type="xs:string"/>
     <xs:attribute name="startDate" type="xs:dateTime"/>
     <xs:attribute name="duration" type="xs:string"/>
     <xs:attribute name="eventDate" type="xs:dateTime"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--  Class: com.highdeal.bart.event.SchedulableJobTopic.SchedulableJobStopEvent -->
<!-- ====================================================================== -->

<xs:element name="job-stop">
   <xs:complexType>
     <xs:attribute name="jobID" type="xs:string"/>
     <xs:attribute name="description" type="xs:string"/>
     <xs:attribute name="jobClassName" type="xs:string"/>
     <xs:attribute name="startDate" type="xs:dateTime"/>
     <xs:attribute name="duration" type="xs:string"/>
     <xs:attribute name="eventDate" type="xs:dateTime"/>
   </xs:complexType>
 </xs:element>



<!-- ************************************************************************ -->
<!-- *                                                                      * -->
<!-- *                                                                      * -->
<!-- *                     Package: com.highdeal.bart.hci                   * -->
<!-- *                                                                      * -->
<!-- *                                                                      * -->
<!-- ************************************************************************ -->

<!-- ====================================================================== -->
<!--                Class: com.highdeal.bart.hci.AcquireCDROp               -->
<!-- ====================================================================== -->

<xs:element name="acquireCDR">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="cdr" minOccurs="1" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attribute name="sessionID" type="xs:string" use="required"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--              Class: com.highdeal.bart.hci.AcquireCDRResult             -->
<!-- ====================================================================== -->

<xs:element name="acquireCDRResult">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="cdr" minOccurs="1" maxOccurs="unbounded"/>
     </xs:sequence>
     <xs:attribute name="hasDuplicate" type="HasDuplicate"/>
     <xs:attribute name="nbCDRNew" type="xs:string"/>
     <xs:attribute name="nbCDRDuplicate" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="HasDuplicate">
   <xs:restriction base="xs:string">
     <xs:enumeration value="true"/>
     <xs:enumeration value="false"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--           Class: com.highdeal.bart.hci.AcquisitionSessionModel         -->
<!-- ====================================================================== -->

<xs:element name="acquisition">
   <xs:complexType>
     <xs:attribute name="sessionID" type="xs:string" />
     <xs:attribute name="startDate" type="xs:dateTime"/>
     <xs:attribute name="duration" type="xs:string"/>
     <xs:attribute name="nbCDRNew" type="xs:string"/>
     <xs:attribute name="nbCDRDuplicate" type="xs:string"/>
     <xs:attribute name="nbCDRConsolidate" type="xs:string"/>
     <xs:attribute name="source" type="xs:string"/>
     <xs:attribute name="description" type="xs:string"/>
     <xs:attribute name="status" type="AcquisitionSessionStatusType"/>
     <xs:attribute name="mode" type="AcquisitionModeType" />
   </xs:complexType>
 </xs:element>

<xs:simpleType name="AcquisitionSessionStatusType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="inProgress"/>
     <xs:enumeration value="ended"/>
     <xs:enumeration value="endedWithErrors"/>
     <xs:enumeration value="cleaned"/>
   </xs:restriction>
 </xs:simpleType>

<xs:simpleType name="AcquisitionModeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="acquire"/>
     <xs:enumeration value="acquireAndDeduplicate"/>
     <xs:enumeration value="acquireAndRejectDuplicate"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--     Class: com.highdeal.bart.hci.AcquisitionSessionSearchFilterModel   -->
<!-- ====================================================================== -->

<xs:element name="acquisitionSessionSearchFilter" type="SearchFilter" substitutionGroup="SearchFilter"/>

<!-- ====================================================================== -->
<!--           Class: com.highdeal.bart.hci.AsyncRunRatingSessionOp         -->
<!-- ====================================================================== -->

<xs:element name="asyncRunRatingSession">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="rating" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--         Class: com.highdeal.bart.hci.AsyncRunRatingSessionResult       -->
<!-- ====================================================================== -->

<xs:element name="asyncRunRatingSessionResult">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="rating" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--                Class: com.highdeal.bart.hci.CDRListModel               -->
<!-- ====================================================================== -->

<xs:element name="cdrList">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="cdr" minOccurs="1" maxOccurs="unbounded"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--                  Class: com.highdeal.bart.hci.CDRModel                 -->
<!-- ====================================================================== -->

<xs:element name="cdr">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="ci" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="cdrID" type="xs:string"/>
    <xs:attribute name="batchRatingGroupId" type="xs:int"/>
    <xs:attribute name="userID" type="xs:string" use="required"/>
    <xs:attribute name="serviceID" type="xs:string" use="required"/>
    <xs:attribute name="subscriptionID" type="xs:string"/>
    <xs:attribute name="consumptionDate" type="xs:dateTime" use="required"/>
    <xs:attribute name="status" type="cdrStatusType"/>
    <xs:attribute name="acquisitionDate" type="xs:dateTime"/>
    <xs:attribute name="acquisitionID" type="xs:string"/>
    <xs:attribute name="ratingDate" type="xs:dateTime"/>
    <xs:attribute name="ratingID" type="xs:string"/>
    <xs:attribute name="errorCode" type="xs:string"/>
    <xs:attribute name="errorDescription" type="xs:string"/>
    <xs:attribute name="source" type="xs:string"/>
    <xs:attribute name="magicNumber" type="xs:string"/>
    <xs:attribute name="snapshotID" type="xs:int"/>
  </xs:complexType>
 </xs:element>

<xs:simpleType name="cdrStatusType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="new"/>
     <xs:enumeration value="error"/>
     <xs:enumeration value="rated"/>
     <xs:enumeration value="duplicate"/>
     <xs:enumeration value="ignored"/>
     <xs:enumeration value="to_be_rerated"/>
     <xs:enumeration value="no_provisioning"/>
     <xs:enumeration value="online_subscription"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--            Class: com.highdeal.bart.hci.CDRModificationModel           -->
<!-- ====================================================================== -->

<xs:element name="cdrModification" type="ModificationModel" substitutionGroup="ModificationModel"/>

<!-- ====================================================================== -->
<!--            Class: com.highdeal.bart.hci.CDRSearchFilterModel           -->
<!-- ====================================================================== -->

<xs:element name="cdrSearchFilter" type="SearchFilter" substitutionGroup="SearchFilter"/>

<!-- ====================================================================== -->
<!--            Class: com.highdeal.bart.hci.CleanDatabaseJobModel          -->
<!-- ====================================================================== -->

<xs:element name="cleanDatabaseJob">
   <xs:complexType>
     <xs:attribute name="pollingPeriod" type="xs:string"/>
     <xs:attribute name="recurrence" type="xs:string"/>
     <xs:attribute name="delay" type="xs:string"/>
     <xs:attribute name="status" type="cleanDatabaseJobStatusType"/>
     <xs:attribute name="description" type="xs:string"/>
     <xs:attribute name="jobID" type="xs:long"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="cleanDatabaseJobStatusType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="active"/>
     <xs:enumeration value="inactive"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--            Class: com.highdeal.bart.hci.ConsolidateCDRBulkOp           -->
<!-- ====================================================================== -->

<xs:element name="consolidateCDRBulk">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="cdrSearchFilter" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--          Class: com.highdeal.bart.hci.ConsolidateCDRBulkResult         -->
<!-- ====================================================================== -->

<xs:element name="consolidateCDRBulkResult">
   <xs:complexType>
     <xs:attribute name="nbCdrSuccess" type="xs:integer" use="required"/>
     <xs:attribute name="nbCdrFailed" type="xs:integer" use="required" />
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--                 Class: com.highdeal.bart.hci.CreateCDROp               -->
<!-- ====================================================================== -->

<xs:element name="createCDR">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="cdr" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
     <xs:attribute name="mode" type="CreationModeType"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="CreationModeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="create"/>
     <xs:enumeration value="createAndDeduplicate"/>
     <xs:enumeration value="createAndRejectDuplicate"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--               Class: com.highdeal.bart.hci.CreateCDRResult             -->
<!-- ====================================================================== -->

<xs:element name="creeateCDRResult">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="cdr" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--           Class: com.highdeal.bart.hci.CreateSchedulableJobOp          -->
<!-- ====================================================================== -->

<xs:element name="createSchedulableJob">
   <xs:complexType>
     <xs:sequence>
       <xs:choice>
         <xs:element ref="cleanDatabaseJob" minOccurs="1" maxOccurs="1"/> 
         <xs:element ref="runRatingSessionJob" minOccurs="1" maxOccurs="1"/> 
       </xs:choice>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--         Class: com.highdeal.bart.hci.CreateSchedulableJobResult        -->
<!-- ====================================================================== -->

<xs:element name="createSchedulableJobResult">
   <xs:complexType>
     <xs:sequence>
       <xs:choice>
         <xs:element ref="cleanDatabaseJob" minOccurs="1" maxOccurs="1"/> 
         <xs:element ref="runRatingSessionJob" minOccurs="1" maxOccurs="1"/> 
       </xs:choice>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--              Class: com.highdeal.bart.hci.DeduplicateCDROp             -->
<!-- ====================================================================== -->

<xs:element name="deduplicateCDR">
   <xs:complexType>
     <xs:attribute name="cdrID" type="xs:string"/>
     <xs:attribute name="consumptionDate" type="xs:dateTime" use="optional"/>
     <xs:attribute name="batchRatingGroupId" type="xs:integer" use="optional"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--            Class: com.highdeal.bart.hci.DeduplicateCDRResult           -->
<!-- ====================================================================== -->

<xs:element name="deduplicateCDRResult">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="cdr" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--         Class: com.highdeal.bart.hci.DeleteAcquisitionSessionOp        -->
<!-- ====================================================================== -->

<xs:element name="deleteAcquisitionSession">
   <xs:complexType>
     <xs:attribute name="sessionID" type="xs:string" use="required"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--       Class: com.highdeal.bart.hci.DeleteAcquisitionSessionResult      -->
<!-- ====================================================================== -->

<xs:element name="deleteAcquisitionSessionResult">
   <xs:complexType>
     <xs:attribute name="reference" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--                Class: com.highdeal.bart.hci.DeleteBulkOp               -->
<!-- ====================================================================== -->

<xs:element name="deleteBARTBulk">
   <xs:complexType>
     <xs:choice>
       <xs:element ref="cdrSearchFilter" minOccurs="1" maxOccurs="1"/>
       <xs:element ref="acquisitionSessionSearchFilter" minOccurs="1" maxOccurs="1"/>
       <xs:element ref="ratingSessionSearchFilter" minOccurs="1" maxOccurs="1"/>
     </xs:choice>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--              Class: com.highdeal.bart.hci.DeleteBulkResult             -->
<!-- ====================================================================== -->

<xs:element name="deleteBARTBulkResult">
   <xs:complexType>
     <xs:attribute name="totalCount" type="xs:integer" />
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--                 Class: com.highdeal.bart.hci.DeleteCDROp               -->
<!-- ====================================================================== -->

<xs:element name="deleteCDR">
   <xs:complexType>
     <xs:attribute name="cdrID" type="xs:string"/>
     <xs:attribute name="consumptionDate" type="xs:dateTime" use="optional"/>
     <xs:attribute name="batchRatingGroupId" type="xs:integer" use="optional"/>
     <xs:attribute name="mode" type="DeletionModeType"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="DeletionModeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="delete"/>
     <xs:enumeration value="deleteAndDeduplicate"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--               Class: com.highdeal.bart.hci.DeleteCDRResult             -->
<!-- ====================================================================== -->

<xs:element name="deleteCDRResult">
   <xs:complexType>
     <xs:attribute name="reference" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--            Class: com.highdeal.bart.hci.DeleteRatingSessionOp          -->
<!-- ====================================================================== -->

<xs:element name="deleteRatingSession">
   <xs:complexType>
     <xs:attribute name="sessionID" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--          Class: com.highdeal.bart.hci.DeleteRatingSessionResult        -->
<!-- ====================================================================== -->

<xs:element name="deleteRatingSessionResult">
   <xs:complexType>
     <xs:attribute name="reference" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--           Class: com.highdeal.bart.hci.DeleteSchedulableJobOp          -->
<!-- ====================================================================== -->

<xs:element name="deleteSchedulableJob">
   <xs:complexType>
     <xs:attribute name="jobID" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--         Class: com.highdeal.bart.hci.DeleteSchedulableJobResult        -->
<!-- ====================================================================== -->

<xs:element name="deleteSchedulableJobResult">
   <xs:complexType>
     <xs:attribute name="reference" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--          Class: com.highdeal.bart.hci.InterruptRatingSessionOp         -->
<!-- ====================================================================== -->

<xs:element name="interruptRatingSession">
   <xs:complexType>
     <xs:attribute name="sessionID" type="xs:string"/>
     <xs:attribute name="batchRatingGroupId" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--        Class: com.highdeal.bart.hci.InterruptRatingSessionResult       -->
<!-- ====================================================================== -->

<xs:element name="interruptRatingSessionResult">
   <xs:complexType>
     <xs:attribute name="reference" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--         Class: com.highdeal.bart.hci.InvalidAcquisitionException       -->
<!-- ====================================================================== -->

<xs:element name="invalidAcquisitionFault">
   <xs:complexType>
     <xs:attribute name="reason" type="InvalidAcquisitionReasonType"/>
     <xs:attribute name="message" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="InvalidAcquisitionReasonType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="internalError"/>
     <xs:enumeration value="sessionDoesNotExist"/>
     <xs:enumeration value="sessionIsNull"/>
     <xs:enumeration value="sessionIsAlreadyEnded"/>
     <xs:enumeration value="invalidAcquisitionMode"/>
     <xs:enumeration value="tooManyRunningSessions"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--             Class: com.highdeal.bart.hci.InvalidCDRException           -->
<!-- ====================================================================== -->

<xs:element name="invalidCDRFault">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="cdr" minOccurs="0" maxOccurs="1"/>
     </xs:sequence>
     <xs:attribute name="reason" type="InvalidCDRReasonType"/>
     <xs:attribute name="message" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="InvalidCDRReasonType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="internalError"/>
     <xs:enumeration value="invalidCDR"/>
     <xs:enumeration value="cdrDoesNotExist"/>
     <xs:enumeration value="duplicateCDR"/>
     <xs:enumeration value="cdrIsNull"/>
     <xs:enumeration value="chargeableItemIsNull"/>
     <xs:enumeration value="consumptionDateIsNull"/>
     <xs:enumeration value="userIDIsNull"/>
     <xs:enumeration value="serviceIDIsNull"/>
     <xs:enumeration value="subscriptionIDisNull"/>
     <xs:enumeration value="invalidMagicNumber"/>
     <xs:enumeration value="alreadyRated"/>
     <xs:enumeration value="ignoredCDR"/>
     <xs:enumeration value="invalidCreationMode"/>
     <xs:enumeration value="invalidModficationMode"/>
     <xs:enumeration value="invalidDeletionMode"/>
     <xs:enumeration value="invalidRatingMode"/>
     <xs:enumeration value="cannotRateInvalidItem"/>
     <xs:enumeration value="beingRated"/>
     <xs:enumeration value="malformedProperty"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--        Class: com.highdeal.bart.hci.InvalidRatingSessionException      -->
<!-- ====================================================================== -->

<xs:element name="invalidRatingSessionFault">
   <xs:complexType>
     <xs:attribute name="reason" type="InvalidRatingSessionReasonType"/>
     <xs:attribute name="message" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="InvalidRatingSessionReasonType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="internalError"/>
     <xs:enumeration value="sessionDoesNotExist"/>
     <xs:enumeration value="sessionIsNull"/>
     <xs:enumeration value="sessionIsAlreadyEnded"/>
     <xs:enumeration value="invalidRatingMode"/>
     <xs:enumeration value="nullBatchRatingGroupId"/>
     <xs:enumeration value="nullMaxConsumptionDate"/>
     <xs:enumeration value="sessionAlreadyRunning"/>
     <xs:enumeration value="tooManyRunningSessions"/>
     <xs:enumeration value="stoppingRunningSessions"/>
     <xs:enumeration value="notRunning"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--               Class: com.highdeal.bart.hci.ModifyCDRBulkOp             -->
<!-- ====================================================================== -->

<xs:element name="modifyCDRBulk">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="SearchFilter" minOccurs="1" maxOccurs="1"/>
       <xs:element ref="ModificationModel" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
     <xs:attribute name="mode" type="BulkModificationModeType"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="BulkModificationModeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="modify"/>
     <xs:enumeration value="modifyAndDeduplicate"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--             Class: com.highdeal.bart.hci.ModifyCDRBulkResult           -->
<!-- ====================================================================== -->

<xs:element name="modifyCDRBulkResult">
   <xs:complexType>
     <xs:attribute name="totalCount" type="xs:integer" />
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--                 Class: com.highdeal.bart.hci.ModifyCDROp               -->
<!-- ====================================================================== -->

<xs:element name="modifyCDR">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="cdr" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
     <xs:attribute name="mode" type="ModifyCDRModeType"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="ModifyCDRModeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="modify"/>
     <xs:enumeration value="modifyAndDeduplicate"/>
     <xs:enumeration value="modifyAndRejectDuplicate"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--               Class: com.highdeal.bart.hci.ModifyCDRResult             -->
<!-- ====================================================================== -->

<xs:element name="modifyCDRResult"> 
   <xs:complexType>
     <xs:sequence> 
       <xs:element ref="cdr" minOccurs="1" maxOccurs="1"/> 
     </xs:sequence>
   </xs:complexType> 
 </xs:element>

<!-- ====================================================================== -->
<!--           Class: com.highdeal.bart.hci.ModifySchedulableJobOp          -->
<!-- ====================================================================== -->

<xs:element name="modifySchedulableJob">
   <xs:complexType>
     <xs:sequence>
       <xs:choice>
         <xs:element ref="cleanDatabaseJob" minOccurs="1" maxOccurs="1"/> 
         <xs:element ref="runRatingSessionJob" minOccurs="1" maxOccurs="1"/> 
       </xs:choice>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--         Class: com.highdeal.bart.hci.ModifySchedulableJobResult        -->
<!-- ====================================================================== -->

<xs:element name="modifySchedulableJobResult">
   <xs:complexType>
     <xs:sequence>
       <xs:choice>
         <xs:element ref="cleanDatabaseJob" minOccurs="1" maxOccurs="1"/> 
         <xs:element ref="runRatingSessionJob" minOccurs="1" maxOccurs="1"/> 
       </xs:choice>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--                  Class: com.highdeal.bart.hci.RateCDROp                -->
<!-- ====================================================================== -->

<xs:element name="rateCDR">
   <xs:complexType>
     <xs:attribute name="cdrID" type="xs:string"/>
     <xs:attribute name="consumptionDate" type="xs:dateTime" use="optional"/>
     <xs:attribute name="batchRatingGroupId" type="xs:integer" use="optional"/>
     <xs:attribute name="mode" type="RateCDRRatingModeType"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="RateCDRRatingModeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="try"/>
     <xs:enumeration value="do"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--                Class: com.highdeal.bart.hci.RateCDRResult              -->
<!-- ====================================================================== -->

<xs:element name="rateCDRResult"> 
   <xs:complexType>
     <xs:sequence> 
       <xs:element ref="cdr" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType> 
 </xs:element>

<!-- ====================================================================== -->
<!--            Class: com.highdeal.bart.hci.RatingErrorException           -->
<!-- ====================================================================== -->

<xs:element name="ratingFault">
   <xs:complexType>
     <xs:attribute name="code" type="xs:string"/>
     <xs:attribute name="message" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--             Class: com.highdeal.bart.hci.RatingSessionModel            -->
<!-- ====================================================================== -->

<xs:element name="rating">
   <xs:complexType>
     <xs:attribute name="sessionID" type="xs:string"/>
     <xs:attribute name="batchRatingGroupId" type="xs:string"/>
     <xs:attribute name="subscriptionID" type="xs:string"/>
     <xs:attribute name="startDate" type="xs:dateTime"/>
     <xs:attribute name="duration" type="xs:string"/>
     <xs:attribute name="mode" type="RatingSessionModeType"/>
     <xs:attribute name="maxConsumptionDate" type="xs:dateTime"/>
     <xs:attribute name="nbCDRRated" type="xs:string"/>
     <xs:attribute name="nbCDRError" type="xs:string"/>
     <xs:attribute name="description" type="xs:string"/>
     <xs:attribute name="status" type="RatingSessionStatusType"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="RatingSessionStatusType">
   <xs:restriction  base="xs:string">
     <xs:enumeration value="inProgress"/>
     <xs:enumeration value="ended"/>
     <xs:enumeration value="stopped"/>
     <xs:enumeration value="cleaned"/>
   </xs:restriction>
 </xs:simpleType>

<xs:simpleType name="RatingSessionModeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="subscription-firstFail"/>
     <xs:enumeration value="subscription-most"/>
     <xs:enumeration value="subscription-try"/>
     <xs:enumeration value="subscription-windowed-firstFail"/>
     <xs:enumeration value="subscription-windowed-most"/>
     <xs:enumeration value="subscription-windowed-try"/>
     <xs:enumeration value="day-most"/>
     <xs:enumeration value="day-subscription-firstFail"/>
     <xs:enumeration value="azimut"/> <!-- deprecated -->
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--       Class: com.highdeal.bart.hci.RatingSessionSearchFilterModel      -->
<!-- ====================================================================== -->

<xs:element name="ratingSessionSearchFilter" type="SearchFilter" substitutionGroup="SearchFilter"/>

<!-- ====================================================================== -->
<!--         Class: com.highdeal.bart.hci.RegisterMonitoringClientOp        -->
<!-- ====================================================================== -->

<xs:element name="registerMonitoringClient">
   <xs:complexType>
     <xs:attribute name="address" type="xs:string"/>
     <xs:attribute name="port" type="xs:integer"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--       Class: com.highdeal.bart.hci.RegisterMonitoringClientResult      -->
<!-- ====================================================================== -->

<xs:element name="registerMonitoringClientResult">
 </xs:element>

<!-- ====================================================================== -->
<!--          Class: com.highdeal.bart.hci.RunRatingSessionJobModel         -->
<!-- ====================================================================== -->

<xs:element name="runRatingSessionJob">
   <xs:complexType>
     <xs:attribute name="pollingPeriod" type="xs:string"/>
     <xs:attribute name="recurrence" type="xs:string"/>
     <xs:attribute name="batchRatingGroupId" type="xs:string"/>
     <xs:attribute name="mode" type="xs:string"/>
     <xs:attribute name="delay" type="xs:string"/>
     <xs:attribute name="status" type="RunRatingSessionJobStatusType"/>
     <xs:attribute name="description" type="xs:string"/>
     <xs:attribute name="jobID" type="xs:long"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="RunRatingSessionJobStatusType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="active"/>
     <xs:enumeration value="inactive"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--             Class: com.highdeal.bart.hci.RunRatingSessionOp            -->
<!-- ====================================================================== -->

<xs:element name="runRatingSession">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="rating" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--           Class: com.highdeal.bart.hci.RunRatingSessionResult          -->
<!-- ====================================================================== -->

<xs:element name="runRatingSessionResult"> 
   <xs:complexType>
     <xs:sequence> 
       <xs:element ref="rating" minOccurs="1" maxOccurs="1"/> 
     </xs:sequence>
   </xs:complexType> 
 </xs:element>

<!-- ====================================================================== -->
<!--             Class: com.highdeal.bart.hci.SchedulingException           -->
<!-- ====================================================================== -->

<xs:element name="schedulingFault">
   <xs:complexType>
     <xs:attribute name="reason" type="SchedulingReasonType"/>
     <xs:attribute name="message" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<xs:simpleType name="SchedulingReasonType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="internalError"/>
     <xs:enumeration value="tooManyJobsScheduled"/>
     <xs:enumeration value="nullJob"/>
     <xs:enumeration value="invalidJob"/>
     <xs:enumeration value="doesNotExist"/>
     <xs:enumeration value="invalidScheduling"/>
     <xs:enumeration value="incompatibleChange"/>
     <xs:enumeration value="cannotInitializeJob"/>
   </xs:restriction>
 </xs:simpleType>

<!-- ====================================================================== -->
<!--         Class: com.highdeal.bart.hci.SearchAcquisitionSessionOp        -->
<!-- ====================================================================== -->

<xs:element name="searchAcquisitionSession">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="acquisitionSessionSearchFilter" minOccurs="1" maxOccurs="1"/> 
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--       Class: com.highdeal.bart.hci.SearchAcquisitionSessionResult      -->
<!-- ====================================================================== -->

<xs:element name="searchAcquisitionSessionResult" type="SearchResult"/>

<!-- ====================================================================== -->
<!--                 Class: com.highdeal.bart.hci.SearchCDROp               -->
<!-- ====================================================================== -->

<xs:element name="searchCDR">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="cdrSearchFilter" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--               Class: com.highdeal.bart.hci.SearchCDRResult             -->
<!-- ====================================================================== -->

<xs:element name="searchCDRResult" type="SearchResult"/>

<!-- ====================================================================== -->
<!--            Class: com.highdeal.bart.hci.SearchRatingSessionOp          -->
<!-- ====================================================================== -->

<xs:element name="searchRatingSession">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="ratingSessionSearchFilter" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--          Class: com.highdeal.bart.hci.SearchRatingSessionResult        -->
<!-- ====================================================================== -->

<xs:element name="searchRatingSessionResult" type="SearchResult"/>

<!-- ====================================================================== -->
<!--           Class: com.highdeal.bart.hci.SearchSchedulableJobOp          -->
<!-- ====================================================================== -->

<xs:element name="searchSchedulableJob">
   <xs:complexType>
     <xs:attribute name="jobID" type="xs:string"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--         Class: com.highdeal.bart.hci.SearchSchedulableJobResult        -->
<!-- ====================================================================== -->

<xs:element name="searchSchedulableJobResult">
   <xs:complexType> 
     <xs:sequence> 
       <xs:choice>
         <xs:element ref="cleanDatabaseJob" minOccurs="1" maxOccurs="1"/> 
         <xs:element ref="runRatingSessionJob" minOccurs="1" maxOccurs="1"/> 
       </xs:choice>
     </xs:sequence>
   </xs:complexType> 
 </xs:element>

<!-- ====================================================================== -->
<!--          Class: com.highdeal.bart.hci.StartAcquisitionSessionOp        -->
<!-- ====================================================================== -->

<xs:element name="startAcquisitionSession">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="acquisition" minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--        Class: com.highdeal.bart.hci.StartAcquisitionSessionResult      -->
<!-- ====================================================================== -->

<xs:element name="startAcquisitionSessionResult">
   <xs:complexType> 
     <xs:sequence> 
       <xs:element ref="acquisition"  minOccurs="1" maxOccurs="1"/> 
     </xs:sequence>
   </xs:complexType> 
 </xs:element>

<!-- ====================================================================== -->
<!--          Class: com.highdeal.bart.hci.StopAcquisitionSessionOp         -->
<!-- ====================================================================== -->

<xs:element name="stopAcquisitionSession">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="acquisition"  minOccurs="1" maxOccurs="1"/>
     </xs:sequence>
     <xs:attribute name="withErrors" type="xs:boolean"/>
   </xs:complexType>
 </xs:element>

<!-- ====================================================================== -->
<!--        Class: com.highdeal.bart.hci.StopAcquisitionSessionResult       -->
<!-- ====================================================================== -->

<xs:element name="stopAcquisitionResult"> 
   <xs:complexType>
     <xs:sequence> 
       <xs:element ref="acquisition" minOccurs="1" maxOccurs="1"/> 
     </xs:sequence>
   </xs:complexType> 
 </xs:element>

<!-- ====================================================================== -->
<!--        Class: com.highdeal.bart.hci.UnregisterMonitoringClientOp       -->
<!-- ====================================================================== -->

<xs:element name="unregisterMonitoringClient">
   <xs:complexType>
     <xs:attribute name="address" type="xs:string"/>
     <xs:attribute name="port" type="xs:integer"/>
   </xs:complexType>
  </xs:element>

<!-- ====================================================================== -->
<!--      Class: com.highdeal.bart.hci.UnregisterMonitoringClientResult     -->
<!-- ====================================================================== -->

<xs:element name="unregisterMonitoringClientResult">
 </xs:element>



<!-- ************************************************************************ -->
<!-- *                                                                      * -->
<!-- *                                                                      * -->
<!-- *                  Package: com.highdeal.bart.admin.hci                * -->
<!-- *                                                                      * -->
<!-- *                                                                      * -->
<!-- ************************************************************************ -->

</xs:schema>
