249 lines
13 KiB
XML
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>
|