Un script Python pentru convertirea fișierelor XML oferite de S.C. Informatica Feroviară S.A. într-o bază de date SQLite.
- se plasează fișierele 
.xmlîn folderuldatafiles - se completează fișierul 
datafiles/mapping.jsoncu numele companiilor - se rulează 
convert.py: 
# Unix
./convert.py# Windows
python convert.pyScriptul este scris pentru Python 3.
Deși rularea scriptului durează în jur de 3 secunde (setul de date 2020-2021), se afișează o bară de progres dacă este instalat tqdm:
# Unix
pip3 install tqdm# Windows
pip install tqdmSchema este validă pentru versiunea 2.
Coloanele fără tip de date sunt luate direct din XML (deci cel mai probabil tip text).
| Coloană | Tip de date | Descriere | 
|---|---|---|
| Versiune | int | Versiunea bazei de date (schema aceasta descrie versiunea 2) | 
| Coloană | Tip de date | Descriere | 
|---|---|---|
| Id | int pk | |
| NumeLegal | text | Numele oficial al companiei (ex: S.C. Companie S.R.L) | 
| NumeComun | text | Numele după care este cunoscută compania (în general numele oficial fără prefix sau sufix; ex: Companie) | 
| Coloană | Tip de date | Descriere | 
|---|---|---|
| Number | int pk | Numar, dar truncat până la întâlnirea primului caracter nenumeric | 
| IdCompanie | int | fk Companii->Id | 
| CategorieTren | R/IR/etc. | |
| KmCum | int | Lungimea totală a traseului în metri | 
| Lungime | int | Lungimea trenului | 
| Numar | Numărul trenului, dar posibil să conțină și simboluri (ex: Number: 74, CategorieTren: IR, Numar: 74-1) | |
| Operator | ? - Uneori conține un număr unic pentru un anumit operator, alteori este gol | |
| Proprietar | ||
| Putere | ||
| Rang | ||
| Servicii | ||
| Tonaj | 
| Coloană | Tip de date | Descriere | 
|---|---|---|
| NumarTren | int | fk Trenuri->Number | 
| Id | int | Id trasă (1, 2, ...) | 
| Tip | ||
| CodStatieInitiala | int | fk Statii->CodStatie | 
| CodStatieFinala | int | fk Statii->CodStatie | 
| Coloană | Tip de date | Descriere | 
|---|---|---|
| CodStatie | int pk | Codul folosit în setul de date | 
| Denumire | text | Numele stației (ex: București Nord Gr.A) | 
| Coloană | Tip de date | Descriere | 
|---|---|---|
| NumarTren | int | fk Trenuri->Number + Trase->NumarTren | 
| IdTrasa | int | fk Trase->Id | 
| Secventa | int | Ordinea secvenței în trasă (1, 2, ...) | 
| Ajustari | ||
| CodStaDest | int | fk Statii->CodStatie | 
| CodStaOrigine | int | fk Statii->CodStatie | 
| DenStaDestinatie | ||
| DenStaOrigine | ||
| Km | int | Distanța în metri între stații (ex: 3022 -> 3022 m / 3 km) | 
| Lungime | int | Lungimea trenului | 
| OraP | int | Ora plecării (numărul de secunde de la 00:00:00 în ziua primei plecări) | 
| OraS | int | Ora sosirii (numărul de secunde de la 00:00:00 în ziua primei plecări) | 
| Rci | ||
| Rco | ||
| Restrictie | ||
| StationareSecunde | int | Numărul de secunde de staționare în stația origine | 
| TipOprire | ||
| Tonaj | ||
| VitezaLivret | int | Viteza între stația origine și destinație în km/h |