yaml
Verwenden von Ankern und Aliasen für übermittelte Inhalte
Suche…
Erstellen einer Tabelle "Wörterbücher" mit YAML-Ankern als Zeilenbezeichner
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
Problem
- Der Entwickler möchte eine Tabellenstruktur in YAML ausdrücken, wobei auf jede Zeile ein kompakter Zeilenbezeichner verweist
Lösung
- Verwenden Sie YAML-Anker, indem Sie jeder Zeile in der Tabelle eine Ankerkennung zuweisen
- In YAML werden wiederverwendbare "Transclusionskennungen" Anker und Aliasnamen genannt
- In YAML bestehen wiederverwendbare "Transclusionskennungen" aus alphanumerischen Token, denen ein kaufmännisches Und oder Sternchen vorangestellt ist
Begründung
- YAML-Anker und Aliasnamen ermöglichen eine verstärkte Normalisierung der Daten
- YAML Anker und Aliase erzwingen
DRY(Wiederholen Sie sich nicht) - In diesem Beispiel kann eine Tabellenstruktur entworfen und beibehalten werden, die eng mit einer Datenbank übereinstimmt
Fallstricke
- YAML-Anker müssen deklariert werden, bevor sie von Aliasnamen referenziert werden können
- YAML-Anker müssen im gesamten Dokument eindeutig sein
- Fehler bei der Angabe eindeutiger Anker verursacht einen Fehler in
yaml.load() - Nicht alle YAML-Parser unterstützen zuverlässig Anker und Aliasnamen
Siehe auch
Verwenden von YAML-Aliasen zum Querverweisen von Zeilen aus einer YAML-Tabelle
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
motto_table:
- &motto001
person: *person001
motto: >
D'oh!! YAML is too complicated!
- &motto002
person: *person002
motto: >
Bart! Listen to your father!
- &motto003
person: *person003
motto: >
Hey! YAML is freakin' sweet!
Problem
- Der Entwickler möchte Zeilen mit Ankern aus einer Tabelle referenzieren und mit Zeilen mit Aliasnamen in einer anderen Tabelle verknüpfen
Lösung
- Verwenden Sie YAML-Aliase, die vordefinierte Anker aus einer anderen Tabelle referenzieren
- In YAML werden wiederverwendbare "Transclusionskennungen" Anker und Aliasnamen genannt
- In YAML bestehen wiederverwendbare "Transclusionskennungen" aus alphanumerischen Token, denen ein kaufmännisches Und oder Sternchen vorangestellt ist
Begründung
- YAML-Anker und Aliasnamen ermöglichen eine verstärkte Normalisierung der Daten
- YAML Anker und Aliase erzwingen
DRY(Wiederholen Sie sich nicht) - In diesem Beispiel kann eine Tabellenstruktur entworfen und beibehalten werden, die eng mit einer Datenbank übereinstimmt
- In diesem Beispiel können Dateneingabe und Dateigrößen reduziert werden
Fallstricke
- In diesem speziellen Beispiel erzeugt
yaml.load()verschachtelte Wörterbücher- Dies wird als "Problem mit verschachtelten Wörterbüchern" bezeichnet.
- Unter dem Personennamen-Wert-Paar ist der Wert für die Person ein Unterwörterbuch
- Dies kann unerwünscht sein, da die Gleichmäßigkeit der Tabellenstruktur beeinträchtigt wird
- Wenn Sie Aliase nicht korrekt angeben, werden fehlende Daten angezeigt
- (Tippfehler erzeugen gebrochene Querverweise)
- YAML unterstützt die Transklusion von Dateien nicht per Verweis, daher müssen alle Aliase und Anker in derselben Yaml-Datei vorhanden sein
- Nicht alle YAML-Parser unterstützen zuverlässig Anker und Aliasnamen
Siehe auch
Verwenden von YAML-Merge-Schlüsseln zum Querverweisen von Zeilen aus einer anderen YAML-Tabelle
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
motto_table:
- &motto001
<<: *person001
motto: >
D'oh!! YAML is too complicated!
- &motto002
<<: *person002
motto: >
Bart! Listen to your father!
- &motto003
<<: *person003
motto: >
Hey! YAML is freakin' sweet!
Problem
- Der Entwickler möchte Zeilen mit Ankern aus einer Tabelle referenzieren und mit Zeilen mit Aliasnamen in einer anderen Tabelle verknüpfen
- Entwickler möchte vermeiden, das Problem "verschachtelte Wörterbücher" zu erstellen
Lösung
- Verwenden Sie YAML-Aliase mit YAML-Merge-Schlüsseln
- In YAML werden wiederverwendbare "Transclusionskennungen" Anker und Aliasnamen genannt
- In YAML bestehen wiederverwendbare "Transclusionskennungen" aus alphanumerischen Token, denen ein kaufmännisches Und oder Sternchen vorangestellt ist
Begründung
- YAML-Anker und Aliasnamen ermöglichen eine verstärkte Normalisierung der Daten
- YAML Anker und Aliase erzwingen
DRY(Wiederholen Sie sich nicht) - In diesem Beispiel kann eine Tabellenstruktur entworfen und beibehalten werden, die eng mit einer Datenbank übereinstimmt
- In diesem Beispiel können Dateneingabe und Dateigrößen reduziert werden
Fallstricke
- In diesem speziellen Beispiel erzeugt
yaml.load()verschachtelte Wörterbücher- Unter dem Personennamen-Wert-Paar ist der Wert für die Person ein Unterwörterbuch
- Dies kann unerwünscht sein, da die Gleichmäßigkeit der Tabellenstruktur beeinträchtigt wird
- Wenn Sie Aliase nicht korrekt angeben, werden fehlende Daten angezeigt
- (Tippfehler erzeugen gebrochene Querverweise)
- YAML unterstützt die Transklusion von Dateien nicht per Verweis, daher müssen alle Aliase und Anker in derselben Yaml-Datei vorhanden sein
- Nicht alle YAML-Parser unterstützen zuverlässig Anker und Aliasnamen
Siehe auch
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow