Pour expliquer les différences entre les 3 formats de données gérés par les actions, je vais utiliser un fichier contenant 3 informations pour 2 entités (personnes) différentes.

Fichier original

CSV

Le format CSV regroupe les données concernant une personne sur une ligne avec une organisation des données par colonnes. La ligne de titre est optionnelle.

nom; prenom; age
DIOTE; Lydie; 18
TERRIEUR; Alex; 19
JSON

Il est constitué d'une étiquette et d'une valeur ou d'une liste de valeurs mises entre des accolades séparées par des virgules. Les valeurs des listes sont mises entre crochets séparés par des virgules.

{
   "classe": {
      "eleve": [
         {
            "nom": "DIOTE",
            "prenom": "Lydie",
            "age": "18"
         },
         {
            "nom": "TERRIEUR",
            "prenom": "Alex",
            "age": "19"
         }
      ]
   }
}
XML

Comme le HTML, il utilise des balises pour structurer les données.

<?xml version="1.0" encoding="UTF-8" ?>
<root>
   <classe>
      <eleve>
         <nom>DIOTE</nom>
         <prenom>Lydie</prenom>
         <age>18</age>
      </eleve>
      <eleve>
         <nom>TERRIEUR</nom>  
         <prenom>Alex</prenom>
         <age>19</age>
      </eleve>
   </classe>
</root>

Pour simplifier les explications, je vais utiliser les termes d'une représentation sous forme d'une tableau.

data2list

Cette action permet de voir l'organisation des données
Sauf erreur dans la source de données, elle affichera toujours l'intégralité des informations contenues dans le fichier.

CSV
  • 0
    • nom: DIOTE
    • prenom: Lydie
    • age: 18
  • 1
    • nom: TERRIEUR
    • prenom: Alex
    • age: 19
{up data2list=images/.../minimal.csv}
JSON
  • classe
    • eleve
      • 0
        • nom: DIOTE
        • prenom: Lydie
        • age: 18
      • 1
        • nom: TERRIEUR
        • prenom: Alex
        • age: 19
{up data2list=images/.../minimal.json}
XML
  • classe
    • eleve
      • 0
        • nom: DIOTE
        • prenom: Lydie
        • age: 18
      • 1
        • nom: TERRIEUR
        • prenom: Alex
        • age: 19
{up data2list=images/.../minimal.xml}

Il est possible de limiter les données affichées en définissant la racine avec l'option lign-root

CSV
  • 0
    • nom: DIOTE
    • prenom: Lydie
    • age: 18
  • 1
    • nom: TERRIEUR
    • prenom: Alex
    • age: 19
{up data2list=images/.../minimal.csv
JSON
  • 0
    • nom: DIOTE
    • prenom: Lydie
    • age: 18
  • 1
    • nom: TERRIEUR
    • prenom: Alex
    • age: 19
{up data2list=images/.../minimal.json 
 | lign-root=classe/eleve}
XML
  • 0
    • nom: DIOTE
    • prenom: Lydie
    • age: 18
  • 1
    • nom: TERRIEUR
    • prenom: Alex
    • age: 19
{up data2list=images/.../minimal.xml
 | lign-root=classe/eleve}

 

data2table

Cette action présente les données sous forme de tableau.
Pour les formats JSON et XML, il est indispensable de redéfinir la racine des données avec l'option lign-root

CSV
nom prenom age
DIOTELydie18
TERRIEURAlex19
{up data2table=images/.../minimal.csv}
JSON
nom prenom age
DIOTELydie18
TERRIEURAlex19
{up data2table=images/.../minimal.json
 | lign-root=0/classe/eleve}
XML
nom prenom age
DIOTELydie18
TERRIEURAlex19
{up data2table=images/.../minimal.xml
 | lign-root=0/classe/eleve}

data-info

Cette action récupère des données d'une seule ligne pour les afficher selon le modèle que vous avez défini.

CSV
Lydie DIOTE
{up data-info=images/.../minimal.csv
 | lign-select=1
 | template=##prenom## ##nom##}
JSON
Lydie DIOTE
{up data-info=images/.../minimal.json
 | lign-root=classe/eleve
 | lign-select=1
 | template=##prenom## ##nom##}
XML
Lydie DIOTE
{up data-info=images/.../minimal-attributes.xml
 | lign-root=classe/eleve
 | lign-select=1
 | template=##prenom## ##nom##}

Variante pour XML

<?xml version="1.0" encoding="UTF-8" ?>
<root>
<classe>
  <eleve nom="DIOTE"  prenom="Lydie">
    <age>18</age>
  </eleve>
  <eleve nom="TERRIEUR"  prenom="Alex">
    <age>19</age>
  </eleve>
</classe>
</root>

Le format XML peut définir des champs comme attributs d'une balise ouvrante
Dans ce cas, UP va créer un sous-ensemble "@attributes" pour les recevoir.

Les actions UP peuvent les traiter de 2 façons :

on conserve le sous-ensemble @attributes, en le renommant si besoin.
Il faut indiquer @attributes dans le chemin. Exemple : @attributes/nom

data2list
  • 0
    • @attributes
      • nom: DIOTE
      • prenom: Lydie
    • age: 18
  • 1
    • @attributes
      • nom: TERRIEUR
      • prenom: Alex
    • age: 19
data2table
@attributes age
nom prenom
DIOTELydie18
TERRIEURAlex19
data-info
Lydie DIOTE

on supprime le sous-ensemble avec l'option  xml-attributes=0.
Les colonnes incluses seront remontées d'un niveau.
L'ajout de @attributes dans le chemin n'est plus nécessaire.

data2list
  • 0
    • nom: DIOTE
    • prenom: Lydie
    • age: 18
  • 1
    • nom: TERRIEUR
    • prenom: Alex
    • age: 19
data2table
nom prenom age
DIOTELydie18
TERRIEURAlex19
data-info
Lydie DIOTE

Un commentaire <!-- --> est noté comme comment sans le contenu. Vous pouvez le masquer avec l'option col-exclude=comment