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

249 lines
13 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="http://www.thales.dc/Customer"
targetNamespace="http://www.thales.dc/Customer"
version="1.0.3">
<!-- Import of xsd file -->
<xs:import namespace="http://www.thales.dc/Headers" schemaLocation="../../common/Headers.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>13/03/2022 - Version 1.0.1</xs:documentation>
<xs:documentation>
1st part: Add the customer status
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>10/10/2022 - Version 1.0.2</xs:documentation>
<xs:documentation>
Add the customer preference notification channel configuration.
Add date time, realm (to identify the origin), the customer id or the agent login.
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>23/11/2022 - Version 1.0.3</xs:documentation>
<xs:documentation>
Add customer audit profiles (explicit and implicit).
Add profileId, startDate, expiryDate to profile.
</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="CustomerXsdVersion" 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 CustomerAccountAuditExchange structure -->
<xs:element name="Payload" type="CustomerAccountAuditExchange"/>
</xs:sequence>
</xs:complexType>
<!-- Description of the CustomerAccountAuditExchange structure -->
<xs:complexType name="CustomerAccountAuditExchange">
<xs:annotation>
<xs:documentation>cmm_customers_post: At customer creation</xs:documentation>
<xs:documentation>cmm_customer_put: At customer update</xs:documentation>
<xs:documentation>cmm_customer_delete: At customer delete</xs:documentation>
<xs:documentation>cmm_customer_status_post: At customer block it's account</xs:documentation>
<xs:documentation>cmm_customer_medias_post: At media attachment to a customer</xs:documentation>
<xs:documentation>cmm_customer_media_delete: At media detachment from a customer</xs:documentation>
<xs:documentation>cmm_customer_profile_post: At profile attached to customer</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="BirthDate" type="xs:date" minOccurs="0">
<xs:annotation>
<xs:documentation>Birth date of the customer</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="City" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>City associated to post code</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Country" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Country name</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CustomerId" type="xs:string" minOccurs="0"/>
<xs:element name="CustomerNumber" type="xs:string" minOccurs="0"/>
<xs:element name="CustomerType" type="CustomerType" minOccurs="0">
<xs:annotation>
<xs:documentation>Type of customer : individual or organization</xs:documentation>
<xs:documentation>Dictionary prefix: CustomerType</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Nationality" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Nationality (country ISO code)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PostalCode" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Address post code</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="State" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>State (only USA)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Title" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Title of the customer. Mr, Mrs, Miss</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Version" type="xs:long" minOccurs="0">
<xs:annotation>
<xs:documentation>Monotonic version of the data</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="AttachedMedia">
<xs:annotation>
<xs:documentation>Media attached to customer</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="AttachedMedia" type="CustomerMedia" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CustomerStatus" type="CustomerStatus" minOccurs="0">
<xs:annotation>
<xs:documentation>Customer Account Status</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Date" type="xs:dateTime" minOccurs="0"/>
<xs:element name="UserId" type="xs:string" minOccurs="0"/>
<xs:element name="Realm" type="xs:string" minOccurs="0"/>
<xs:element name="NotificationChannelConfigurations" minOccurs="0">
<xs:annotation>
<xs:documentation>Audit Notification</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="NotificationChannelConfiguration" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="NotificationType" type="xs:string" minOccurs="0"/>
<xs:element name="NotificationChannelTypeConfigurations">
<xs:complexType>
<xs:sequence>
<xs:element name="NotificationChannelTypeConfiguration" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="NotificationChannelType" type="xs:string" minOccurs="0"/>
<xs:element name="ActivationStatus" type="xs:boolean" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CustomerProfiles" minOccurs="0">
<xs:annotation>
<xs:documentation>Customer Profiles</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="CustomerProfile" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ProfileId" type="xs:int" minOccurs="0">
<xs:annotation>
<xs:documentation>To get profile name, please reference to system parameters</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="StartDate" type="xs:date" minOccurs="0">
<xs:annotation>
<xs:documentation>Start date of the profile</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ExpiryDate" type="xs:date" minOccurs="0">
<xs:annotation>
<xs:documentation>Expiry date of the profile</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="UpdateDate" type="xs:date" minOccurs="0">
<xs:annotation>
<xs:documentation>Last update date of the profile</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="CustomerMedia">
<xs:all>
<xs:element name="MediaId" type="xs:string" minOccurs="0"/>
<xs:element name="MediaSerialNumber" type="xs:string" minOccurs="0"/>
<xs:element name="MediaTypeId" type="xs:int" minOccurs="0"/>
</xs:all>
</xs:complexType>
<xs:simpleType name="CustomerType">
<xs:restriction base="xs:string">
<xs:enumeration value="INDIVIDUAL"/>
<xs:enumeration value="ORGANIZATION"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CustomerStatus">
<xs:annotation>
<xs:documentation>Customer Status enumeration</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="INITIALIZED"/>
<xs:enumeration value="ENABLED"/>
<xs:enumeration value="BLOCKED"/>
<xs:enumeration value="CLOSED"/>
<xs:enumeration value="DISABLED"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>