poc-reports/es_elt/xsd/auditData/clr/ContractApportionment.xsd
2026-01-27 14:48:39 +01:00

266 lines
14 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:med="http://www.thales.dc/MediaIdentification"
xmlns:loc="http://www.thales.dc/Localized"
xmlns:clr="http://www.thales.dc/ClearingItemType"
xmlns="http://www.thales.dc/ContractApportionment"
targetNamespace="http://www.thales.dc/ContractApportionment"
version="1.3.1">
<!-- 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>04/11/2021 - Version 1.1.0</xs:documentation>
<xs:documentation>
- Add the contract rule details
- Remove the ContractApportionmentId (the ContractApportionment is at the contract level so ContractApportionmentId did not have any sense)
- Add ClearingVersion
- Remove the rule name at contract level
- Remove the payerRoleType in Apportionment/Settlement at contract level
- Remove the compensation in Settlement at contract level
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>11/07/2022 - Version 1.2.0</xs:documentation>
<xs:documentation>
- Add ContractSerialNumber
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>17/10/2022 - Version 1.2.1</xs:documentation>
<xs:documentation>
- Add BestEffort in ContractApportionmentAuditExchange
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>03/11/2022 - Version 1.3.0</xs:documentation>
<xs:documentation>
- Rename ApportionedRevenue to AmountToApportion
- see ClearingItemType.xsd file version 1.1.0
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>03/11/2023 - Version 1.3.1</xs:documentation>
<xs:documentation>
- Add capping product code et journey definition product code to identify the capping/journey definition used in the apportionment.
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>-----------------------------------------------------------------------------------------------------------------------</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>23/04/2024 - Version 1.3.2</xs:documentation>
<xs:documentation>
- Add DailyMediaConsumptions with dailyMediaConsumptionId and legIds.
</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="ContractApportionmentXsdVersion" type="xs:string" fixed="1.3"/>
</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 ContractApportionmentAuditExchange structure -->
<xs:element name="Payload" type="ContractApportionmentAuditExchange"/>
</xs:sequence>
</xs:complexType>
<!-- Description of the ContractApportionmentAuditExchange structure -->
<xs:annotation>
<xs:documentation>Apportionment of a fraction of contract from a payer to a payee's account during a settlement period.</xs:documentation>
</xs:annotation>
<xs:complexType name="ContractApportionmentAuditExchange">
<xs:annotation>
<xs:documentation>clr_apportionment_get: At apportionment creation</xs:documentation>
<xs:documentation>Apportionment of a fraction of contract from a payer to a payee's account during a settlement period.</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="ApportionmentItems" minOccurs="0" type="clr:ApportionmentItemsType"/>
<xs:element name="ContractRuleDetails" minOccurs="0">
<xs:annotation>
<xs:documentation>Sorted rule details</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ContractRuleDetail" type="clr:ContractRuleDetails" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SettlementItems" minOccurs="0" type="clr:SettlementItemsType"/>
<xs:element name="AmountToApportion" type="xs:decimal">
<xs:annotation>
<xs:documentation>The total revenue to be apportioned among all the stakeholder</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ContractId" type="xs:string">
<xs:annotation>
<xs:documentation>The contract as an instance of a product, possibly on a media.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ContractSerialNumber" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>The contract serial number: serial number of the Contract Id.</xs:documentation>
</xs:annotation>
</xs:element>
<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="MediaIdentification" type="med:MediaIdentification" minOccurs="0">
<xs:annotation>
<xs:documentation>The media holding the contract</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="NonTransitProductCode" type="loc:LocalizedNonTransitProductCode" minOccurs="0">
<xs:annotation>
<xs:documentation>The type of product of the contract instance if it is a non transit product.</xs:documentation>
<xs:documentation>Dictionary prefix: NonTransitProductCode</xs:documentation>
</xs:annotation>
</xs:element>
<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="ProductCode" type="loc:LocalizedProductCode" minOccurs="0">
<xs:annotation>
<xs:documentation>The type of product of the contract instance if it is a transit product.</xs:documentation>
<xs:documentation>Dictionary prefix: ProductCode</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SupplementProductCode" type="loc:LocalizedSupplementProductCode" minOccurs="0">
<xs:annotation>
<xs:documentation>The type of product of the contract instance if it is a supplement product.</xs:documentation>
<xs:documentation>Dictionary prefix: SupplementProductCode</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CappingProductCode" type="loc:LocalizedCappingRule" minOccurs="0">
<xs:annotation>
<xs:documentation>The type of capping of the contract instance if it is a capping instance.</xs:documentation>
<xs:documentation>Dictionary prefix: CappingRule</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="JourneyProductCode" type="loc:LocalizedJourneyDefinition" minOccurs="0">
<xs:annotation>
<xs:documentation>The type of journey definition of the contract instance if it is a journey instance.</xs:documentation>
<xs:documentation>Dictionary prefix: JourneyDefinition</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="BestEffort" type="xs:boolean" minOccurs="0">
<xs:annotation>
<xs:documentation>
In case of an apportionment of an amount lower than the revenue:
If true, will perform the apportionment the best way possible.
If false, will do nothing for the apportionment.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Sequence" type="xs:long">
<xs:annotation>
<xs:documentation>The ordering sequence number of this contract's apportionment.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SettlementPeriodId" type="xs:string"/>
<xs:element name="SettlementPeriodCreationDateTime" type="xs:dateTime"/>
<xs:element minOccurs="0" name="DailyMediaConsumptions">
<xs:annotation>
<xs:documentation>DailyMediaConsumptions</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="DailyMediaConsumption" type="DailyMediaConsumption" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="DailyMediaConsumption">
<xs:all>
<xs:element name="DailyMediaConsumptionId" type="xs:string">
<xs:annotation>
<xs:documentation>Id of the daily media consumption that was involved in this payment request</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="Legs">
<xs:annotation>
<xs:documentation>Legs</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Leg" type="Leg" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="Leg">
<xs:all>
<xs:element name="LegId" type="xs:string">
<xs:annotation>
<xs:documentation>
Unique identifier for a leg.
Between multiple reconstructions, the legId will be kept constant if the leg did not change
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
</xs:schema>