2026-01-27 14:48:39 +01:00

191 lines
9.4 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) Revenue Collection Systems France S.A.S. - 2018-2025 ALL RIGHTS RESERVED
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:head="http://www.thales.dc/Headers"
xmlns:loc="http://www.thales.dc/Localized"
xmlns="http://www.thales.dc/FeeContract"
targetNamespace="http://www.thales.dc/FeeContract"
version="1.0.0">
<!-- Import of xsd file -->
<xs:import namespace="http://www.thales.dc/Headers" schemaLocation="../../common/Headers.xsd"/>
<xs:import namespace="http://www.thales.dc/MediaIdentification" schemaLocation="../../common/MediaIdentification.xsd"/>
<xs:import namespace="http://www.thales.dc/Localized" schemaLocation="../../common/Localized.xsd"/>
<xs:import namespace="http://www.thales.dc/ClearingItemType" schemaLocation="../../common/ClearingItemType.xsd"/>
<!-- Annotate all modification of the xsd file according to version -->
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>Version List</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>04/11/2021 - Version 1.0.0</xs:documentation>
<xs:documentation>
1st part: Add the AuditMessages, AuditMessage, Headers and Payload element for the XML validation
2nd part: Add version to xsd schema
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>24/10/2024 - Version 1.0.1</xs:documentation>
<xs:documentation>
Add ChargingModel, ChargingPeriod, TotalNumber, TotalAmount, FeeRuleId
Remove AmountToApportion
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------</xs:documentation>
</xs:annotation>
<!-- Description of the AuditMessages structure -->
<xs:element name="AuditMessages" type="AuditMessagesType"/>
<xs:complexType name="AuditMessagesType">
<xs:sequence>
<!-- List of AuditMessage -->
<xs:element name="AuditMessage" type="AuditMessageType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<!-- version of AuditMessages structure -->
<xs:attribute name="FeeContractXsdVersion" type="xs:string" fixed="1.0"/>
</xs:complexType>
<!-- Description of the AuditMessage structure -->
<xs:complexType name="AuditMessageType">
<xs:sequence>
<!-- Headers structure -->
<xs:element name="Headers" type="head:HeadersType" minOccurs="0"/>
<!-- Payload is a FeeContractExchange structure -->
<xs:element name="Payload" type="FeeContractExchange"/>
</xs:sequence>
</xs:complexType>
<!-- Description of the FeeContractExchange structure -->
<xs:annotation>
<xs:documentation>Allocation of a fee based on a contract from a payer to a payee's account.</xs:documentation>
</xs:annotation>
<xs:complexType name="FeeContractExchange">
<xs:annotation>
<xs:documentation>clr:fee.contract.get: At fee distribution</xs:documentation>
<xs:documentation>Distribution of a fee based on a contract from a payer to a payee's account.</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="FeeItems" minOccurs="0">
<xs:annotation>
<xs:documentation>Output from fee distribution</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="FeeItem" type="FeeContractItemType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SettlementItems" minOccurs="0">
<xs:annotation>
<xs:documentation>
Individual money transfer. The current settlements already take into account what has been done in previous settlement periods.
For instance, if in period n-1, we needed to give A->B 10, and in current period n we realize that we needed to give A->B 3,
the current audit will only contain a contractSettlement B->A 7 to compensate.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="SettlementItem" type="FeeSettlementItemType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FeeContractId" type="xs:string">
<xs:annotation>
<xs:documentation>The contract as an instance of a fee.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="FeeContextId" type="xs:string"/>
<xs:element name="FeeRuleId" type="xs:string"/>
<xs:element name="CreationEventId" type="xs:string">
<xs:annotation>
<xs:documentation>The unique identifier of the related event.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ChargingModel" type="xs:string">
<xs:annotation>
<xs:documentation>The charging model of the fee contract (per event, per volume, per total value).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ChargingPeriod" type="xs:string">
<xs:annotation>
<xs:documentation>The charging period of the fee contract (Daily, Weekly, Monthly).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ApplicationDate" type="xs:dateTime"/>
<xs:element name="ProcessingDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="ClearingVersion" type="xs:normalizedString">
<xs:annotation>
<xs:documentation>The version of the clearing parameters.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SettlementPeriodId" type="xs:string"/>
<xs:element name="TotalNumber" type="xs:int" minOccurs="0"/>
<xs:element name="TotalAmount" type="xs:decimal"/>
<xs:element name="Sequence" type="xs:long">
<xs:annotation>
<xs:documentation>The ordering sequence number of this contract.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="FeeContractItemType">
<xs:annotation>
<xs:documentation>Results of fee calculation</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="StakeholderId" type="loc:LocalizedBusinessEntity">
<xs:annotation>
<xs:documentation>The stakeholder involved in the fee</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Account" type="xs:string">
<xs:annotation>
<xs:documentation>The account to where the money is credited/debited.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="AllocatedAmount" type="xs:decimal">
<xs:annotation>
<xs:documentation>amount (positive or negative) allocated to the Clearing Participant</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="FeeSettlementItemType">
<xs:annotation>
<xs:documentation>Individual money movement resulting from the fee items</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="PayerId" type="loc:LocalizedBusinessEntity">
<xs:annotation>
<xs:documentation>The stakeholder who will be debited money</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PayeeId" type="loc:LocalizedBusinessEntity">
<xs:annotation>
<xs:documentation>The stakeholder who will be credited money</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SettlementAmount" type="xs:decimal">
<xs:annotation>
<xs:documentation>amount (POSITIVE) to transfer between PAYER and PAYEE</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
</xs:schema>