Beachten Sie, dass die Spaltennamen umbenannt werden dürfen. Die Zuordnung der Spalte zu Properties von
Records wird über den Inhalt von versteckten Zeilen gewährleistet.
c. Properties, die Listen mit Werten von primitiven Datentypen enthalten
Beachten Sie, dass die Spaltennamen umbenannt werden dürfen. Die Zuordnung der Spalte zu Properties
von Records wird über den Inhalt von versteckten Zeilen gewährleistet.
### c. Properties, die Listen mit Werten von primitiven Datentypen enthalten ###
```JSON
{
...
...
@@ -105,19 +119,16 @@ c. Properties, die Listen mit Werten von primitiven Datentypen enthalten
}
```
Dies würde in einem XLSX Blatt mit dem folgenden Inhalt abgebildet:
| url | subjects |
|------|-----|-------------------|-----|---|----|
| www.indiscale.com | Math;Physics |
Dieser Eintrag würde in einem XLSX Blatt mit dem folgenden Inhalt abgebildet:
Die Listenelemente werden separiert von ``;`` in die Zelle geschrieben.
Wenn die Elemente den Separator ``;`` enthalten, dann wird dieser mit einem ``\`` escaped.
| url | subjects |
|-------------------|--------------|
| www.indiscale.com | Math;Physics |
Die Listenelemente werden separiert von ``;`` in die Zelle geschrieben. Wenn die Elemente den
Separator ``;`` enthalten, dann wird dieser mit einem ``\`` escaped.
d. Properities, die Listen mit Referenzen enthalten
### d. Properties, die Listen mit Referenzen enthalten ###
```JSON
{
...
...
@@ -127,45 +138,92 @@ d. Properities, die Listen mit Referenzen enthalten
{
"family_name": "Sky",
"given_name": "Max",
},{
},
{
"family_name": "Sky",
"given_name": "Min",
}],
}
]
}
}
```
Da die beiden Coaches nicht vernünftig in einer Zelle dargestellt werden können, bedarf es nun eines
Da die beiden Coaches nicht vernünftig in einer Zelle dargestellt werden können, bedarf es nun eines
weiteren Tabellenblatts, das die Eigenschaften der Coaches enthält.
Das Blatt zu den Trainings enthält in diesem Beispiel nur die "date" Spalte:
Das Blatt zu den *Trainings* enthält in diesem Beispiel nur die "date" Spalte:
| date |
|------|
| date |
|------------|
| 2023-01-01 |
Zusätzlich gibt es ein weiteres Blatt in dem die Coaches gespeichert werden.
Hier ist nun entscheidend, dass definiert wird, wie von potentiell mehreren "Trainings" das richtige Element gewählt wird.
In diesem Fall bedeutet dies, dass das "date" eindeutig sein muss
TODO: In welchem Scope gilt diese Eindeutigkeit? Können wir dies checken?
Das zweite Blatt sieht dann wie folgt aus
| date | coach.family_name | coach.given_name |
|------|-|-|
| 2023-01-01 | Sky | Max|
| 2023-01-01 | Sky | Min|
Zusätzlich gibt es ein *weiteres* Blatt in dem die Coaches gespeichert werden. Hier ist nun
entscheidend, dass definiert wird, wie von potentiell mehreren "Trainings" das richtige Element
gewählt wird. In diesem Fall bedeutet dies, dass das "date" eindeutig sein muss.
TODO: In welchem Scope gilt diese Eindeutigkeit? Können wir dies checken?
# Hidden automation logic
The first column in each sheet will be hidden and it will contain an entry in each row that needs special
treatment. The following values are used:
``COL_TYPE``: typically the first row. It indicates the row that defines the type of columns (``FOREIGN`` or ``VALUE``).
``PATH``: indicates that the row is used to define the path within the JSON
``IGNROE``: row is ignored; It can be used for explanatory texts or layout
Das zweite Blatt sieht dann wie folgt aus
If we want to put the value of a given cell into the JSON, we traverse all path elements given in rows with the ``PATH`` value from row with lowest index to the one with the highest index. The final element of the path is the name of the Property of which the value
needs to be set. The elements of the path are sufficient to identify the object within the JSON if the value of the corresponding key is
an object. If the value is an array, the appropriate object within the array needs to be selected.
For this selection additional ``FOREIGN`` columns are used. The path given in those columns is the path to the level where the object needs to be chosen plus the name of the attribute that is used to select the correct object.
| date | `coach.family_name` | `coach.given_name` |