Popis nejpoužívanějších formátů použitých v technologii FastX/Freelance:  

·        Název formátu: XIF [X Interchange Format]

XIF je ve Freelance nejpoužívanější formát. Je součástí implementace jazyka X. Slouží k statickému i operativnímu ukládaní strukturovaných textových dat, jako jsou například šablony WFX, WTX, WRO souborů, zdroje aplikace, debug info X modulů aj. Existují dvě základní entity formátu: datová položka a blok.
* Datová položka je uspořádaná dvojice jméno_položky=hodnota_položky.
* Blok je pojmenovaný seznam obsahující jedné anebo více položek anebo bloků.
* Bloky se mohou vnořovat.
* Blok se deklaruje jeho jménem následovaným znakem { a zakončuje znakem }.
* Jednoznačné jméno datové položky je seznam všech jmen nadřízených bloků uspořádaných od vnějšího směrem k bloku obsahujícímu položku následovaný jménem položky. Jednotlivé položky seznamu jsou odděleny znakem |.

Jednoduchý zápis XIF formátu může vypadat takto:

main{
      subblockA{
            VALUE{
                 X=1
                 Y=1
            }
      }
      subblockB{
            VALUE=1
      }
      subblockC{
            VALUE=4
      }
}

Výše uvedený příklad definuje XIF s jedním blokem, obsahujícím tři podbloky, každý s další položkou. V prvním podbloku je položkou další podblok. Vidíme, že v XIF formátu mohou existovat položky či bloky i se stejnými jmény, jsou-li v různých blocích. Obecně platí, že
* jména všech položek a bloků v jediném bloku musí být unikátní.

Formát XIF a jeho implementace v X definuje dvě direktivy pro implementaci odkazů na další XIF soubory:
#include jméno_XIF_souboru
#embed
maska_XIF_souborů
Mezi oběma direktivami je následující rozdíl: include nepodporuje masku pro zadání vkládaných souborů, zato si vkládané bloky pamatují, z jakého souboru byly načteny. To má význam v případě ukládání změn v XIFech operátorem xifsave() jazyka X – rozložení bloků v souborech se nezmění. Direktiva embed podporuje zadání masky vkládaných XIF souborů, vkládané bloky si však nepamatují, z jakého souboru pocházejí. Při případném uložení změn operátorem xifsave() se všechny uloží do souboru na místo embed direktivy.
I direktiva embed má své uplatnění: používá se v případech, že potřebujeme vytvořit XIF strukturu ze sady souborů, kterou dopředu neznáme; kupříkladu FastX server čte při initializaci XIF uložený v souboru init. Tento soubor obsahuje mimo jiné direktivu embed, kterou se načtou XIF-deskriptory všech FastX aplikací.

·        Název formátu: html, gif, jpeg, … běžně používané standardy

 

·         Název formátu: LISTEX
Formát LISTEX se využívá při dynamické konstrukci seznamů (menu) hodnot editačního pole anebo sloupce tabulky. Seznam má formu strukturovaného popup-menu. Definice se skládá ze  dvou textových řetězců. První z nich (SHOWLIST) obsahuje definici zobrazovaných hodnot, druhý (DATALIST), obsahuje odpovídající datové hodnoty. Je-li DATALIST prázdný, datové hodnoty jsou jednotlivé prvky SHOWLISTU. Dále platí, že je-li definován DATALIST, uživatel nemá možnost zadat jinou hodnotu než některý prvek SHOWLISTu.


1.      Definice SHOWLISTu: seznam popisovačů jednotlivých hodnot s rozšiřující syntaxí pro tvorbu struktovaných menu
SHOWLIST=<popis hodnoty 1>~<popis hodnoty 2>~…<popis hodnoty N>
Je-li <popis hodnoty N> ROVEN
>>>, systém k předchozí hodnotě vytvoří podmenu a následné popisovače vkládá do tohoto podmenu
Je-li <popis hodnoty N> ROVEN
<<<, systém ukončí stávající podmenu a následné popisovače vkládá do nadřízeného seznamu

Příklad
Alfa~>>>~alfa1~alfa2~alfa3~<<<~Beta~>>>~beta1~beta2~beta3~<<<
definuje menu hodnot: Alfa a Beta, přičemž každá položka má podmenu se třemi položkami

Popis hodnoty má následující strukturu:
POPIS = text_menu anebo
POPIS = text_menu//:pojmenovany_obrazek

2.      Definice DATALISTu: nepovinný seznam datových hodnot odpovídajících jednotlivým položkám SHOWLISTu.
DATALIST=< hodnota 1>~< hodnota 2>~…<hodnota N>

UPOZORNĚNÍ: Je nezbytné v DATALISTu uvádět hodnoty i pro syntaktické operátory >>> a <<<, ačkoli tyto hodnoty nemají význam a mohou být prázdné.

Příklad
SHOWLIST:
Alfa~>>>~alfa1~alfa2~alfa3~<<<~Beta~>>>~beta1~beta2~beta3//:iSEMAPHOR~<<<
DATALIST: alfa~~Alfa1~Alfa2~Alfa3~~beta~~Beta1~Beta2~Beta3~
definuje menu hodnot: Alfa a Beta, přičemž každá položka má podmenu se třemi položkami. Datalist tyto hodnoty (v databázi) mapuje na hodnoty s odlišným zápisem velkých a malých písmen. Všimněte si zdvojených ~~, které reprezentují prázdné datovéhodnotypro operátory >>> a <<< . Podmenu beta3 má navíc obrázek iSEMAPHOR.