Dans le détail du langage XFT
Son fonctionnement : demande de disponibilité et création d'un booking
Le XFT donne aux fournisseurs un accès direct à des produits voyage pré packagés. Ces produits sont issus d'une liste de résultats provenant d'un moteur de packages.
Une fois que le package est séléctionné, une première demande est faite au fournisseur. Cette demande permet d'obtenir, pour un produit donné, une transaction de type Quoted Availability, ou demande de disponibilité. La seconde transaction correspond à la création d'un booking, ou requête en option ou confirmée. Cette transaction permet au fournisseur de renvoyer un numéro de référence valide
Ses autres transactions : gestion des dossiers, annulation, confirmation, abandon
Les transaction simples permettent également de gérer les booking. Elles vont de l'annulation d'un booking à sa confirmation, son abandon, la récupération de ses informations, ou un demande de frais d'annulation.
Des transactions construites autour d'un langage structuré
Le XFT n’est pas juste une collection de transactions. C'est véritable langage structuré avec une grammaire, un vocabulaire, des verbes et une syntaxe. Ces éléments sont validés par un schéma
Une orientation Objet
Le langage XFT est un langage orienté objet. Il intègre l’héritage, la récursivité des pointeur…etc. Il est basé sur 7 familles d’entités principales :
Les types.
Ils étendent les standards du XML au travers d’expressions régulières : majuscules, codes à 3 caractères (pour les codes IATA), union de textes libres et de codes…
Les listes
Les listes d’énumérations sont des listes de valeurs soumises à une validation stricte. (liste de codes repas (mealplan), listes de codes fournisseurs). Elles sont utilisées dans la définition des attributs et d’autres types (via des unions XSD)
Les groupes d'attibuts
Les groupes d’attributs sont une collection de plusieurs attributs utilisés dans la définition des classes. Pour des raisons fonctionnelles, ils sont regroupés
Les éléments
Les éléments sont des instances de classes. Elles constituent le vocabulaire actuel du XFT. Un élément possède un usage particulier. Il peut être utilisé dans les fichiers XFT et les transactions. Il peut également constituer les classes. Certains sont des synonymes. Ils peuvent être substitués à d’autres sans utiliser l’héritage
Les collections
Les collections sont des instances de collections de classe utilisées pour contenir une collection d’éléments ou des collections du même type. Ils sont utilisés soit directement dans les fichiers XML et les transactions, soit dans la constitution des classes.
Le groupe
Le groupe est un élément abstrait utilisé dans les définitions du schéma mais jamais présenté comme de véritables entités XML. Il utilisé pour grouper des éléments et des collections de même type (chambre ou des collections de chambres ). Il est également utilisé pour grouper des éléments de différents types avec des rapprochements fonctionnels (début et fin d’un voyage, le lieu de départ et d’arrivé du voyage. L’utilisation de groupes augmente la clarté du schéma mais impose un ordre au niveau des tags.
La classe
La classe est l’équivalent des classes dans les langages orientés objet. Dans le schéma, cela correspond à un un Complex Type. Un complex type peut contenir des attributs, des groupes d’attributs, des éléments (uniques ou collections) ou des groupes. Les classes XFT sont indépendantes mais peuvent hériter de classes basiques. Par exemple, un segment aérien pourra hériter d’un segment transport qui héritera lui même d’un segment, dérivé d’une entity voyage lui même dérivé d’entité, pour arrivé ainsi jusqu’à l’atome. A une classe Ucorrespond au moins une collection de classes, un élément, un élément classe ou un groupe. Les types spécifiques et les énumérations peuvent aussi bien exister en tant que classes ou agrégats. Il existe des classes pour les éléments seuls ou les collection.
Exemple d'une transaction
<Transaction>
<Trip>
<Segment xsi:type="SegmentProductType">
<Code Value="CNPEKCIR"/>
</Segment>
<Traveller Type="Adult"/>
<Begin Value="2010-06-08"/>
</Trip
Le Schéma
Tous les éléments utilisés dans le XFT ont une classe correspondante le plus souvent héritée d’autres classes racine. Une classe n’est jamais directement présente dans le fichier XML ou dans les transactions. Les interactions entre les différentes entités sont illustrées dans le diagramme suivant :
Facile à maitriser, les conventions de nommage permettent une interprétation et une navigation intuitives dans le schéma. Par exemple, les classes d’une chambre (room) sont RoomType (Room préfixe l’élément), et les classes correspondantes sont RoomCollectionType (et Rooms pour un élément). Le groupe est nommé RoomGroup. RoomType a un RoomCodeCodeType (CodeType postfixe toutes les énumérations)
