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
- 0
- eleve
{up data2list=images/.../minimal.json}
XML
- classe
- eleve
- 0
- nom: DIOTE
- prenom: Lydie
- age: 18
- 1
- nom: TERRIEUR
- prenom: Alex
- age: 19
- 0
- eleve
{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 |
---|---|---|
DIOTE | Lydie | 18 |
TERRIEUR | Alex | 19 |
{up data2table=images/.../minimal.csv}
JSON
nom | prenom | age |
---|---|---|
DIOTE | Lydie | 18 |
TERRIEUR | Alex | 19 |
{up data2table=images/.../minimal.json
| lign-root=0/classe/eleve}
XML
nom | prenom | age |
---|---|---|
DIOTE | Lydie | 18 |
TERRIEUR | Alex | 19 |
{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
- @attributes
- 1
- @attributes
- nom: TERRIEUR
- prenom: Alex
- age: 19
- @attributes
data2table
@attributes | age | |
---|---|---|
nom | prenom | |
DIOTE | Lydie | 18 |
TERRIEUR | Alex | 19 |
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 |
---|---|---|
DIOTE | Lydie | 18 |
TERRIEUR | Alex | 19 |
data-info
Lydie DIOTEUn commentaire <!-- --> est noté comme comment sans le contenu. Vous pouvez le masquer avec l'option col-exclude=comment