yaml
Använda ankare och alias för transkluderat innehåll
Sök…
Skapa en tabell "Array of Dictionaries" med YAML-ankare som radidentifierare
---
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
- utvecklare vill uttrycka en tabellstruktur i YAML, där varje rad hänvisas till av en kompakt radidentifierare
Lösning
- använd YAML-ankare genom att tilldela en ankaridentifierare till varje rad i tabellen
- i YAML kallas återanvändbara "transkluderingsidentifierare" förankringar och alias
- i YAML består återanvändbara "transclusionsidentifierare" av alfanumeriska symboler som föregås av en ampersand eller en asterisk
Logisk grund
- YAML-ankare och alias möjliggör ökad datanormalisering
- YAML-ankare och alias tvingar
DRY(inte upprepa dig själv) - i det här exemplet kan en tabellstruktur utformas och bevaras som nära sammanfaller med en databas
Fallgropar gropar~~POS=HEADCOMP
- YAML-ankare måste deklareras innan de kan refereras till av alias
- YAML-ankare måste vara unika i hela dokumentet
- misslyckande med att ange unika förankringar orsakar ett fel på
yaml.load() - inte alla YAML-tolkare stöder pålitligt ankare och alias
Se även
Använda YAML-alias för att korsreferenser rader från en YAML-tabell
---
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
- utvecklare vill korsreferenser rader med förankringar från ett bord och länka till dem med rader som alias i en annan tabell
Lösning
- använd YAML-alias, som korsreferenserar fördefinierade förankringar från en annan tabell
- i YAML kallas återanvändbara "transkluderingsidentifierare" förankringar och alias
- i YAML består återanvändbara "transclusionsidentifierare" av alfanumeriska symboler som föregås av en ampersand eller en asterisk
Logisk grund
- YAML-ankare och alias möjliggör ökad datanormalisering
- YAML-ankare och alias tvingar
DRY(inte upprepa dig själv) - i det här exemplet kan en tabellstruktur utformas och bevaras som nära sammanfaller med en databas
- i det här exemplet kan datainmatning och filstorlekar minskas
Fallgropar gropar~~POS=HEADCOMP
- i detta specifika exempel kommer
yaml.load()att producera kapslade ordböcker- detta kallas "kapslade ordböckerproblem"
- under personens namnvärde-par kommer värdet för personen att vara en underordbok
- detta kan vara oönskat, eftersom det bryter likformigheten i bordstrukturen
- Underlåtenhet att korrekt specificera alias leder till saknade data
- (skrivfel skapar trasiga korsreferenser)
- YAML stöder inte filtransklusion genom referens, så alla alias och ankare måste finnas i samma yaml-fil
- inte alla YAML-tolkare stöder pålitligt ankare och alias
Se även
Använda YAML-sammanslagningstangenter för att korsreferenserrader från en annan YAML-tabell
---
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
- utvecklare vill korsreferenser rader med förankringar från ett bord och länka till dem med rader som alias i en annan tabell
- utvecklare vill undvika att skapa "kapslade ordböcker-problemet"
Lösning
- använd YAML-alias med YAML-sammanslagningsknappar
- i YAML kallas återanvändbara "transkluderingsidentifierare" förankringar och alias
- i YAML består återanvändbara "transclusionsidentifierare" av alfanumeriska symboler som föregås av en ampersand eller en asterisk
Logisk grund
- YAML-ankare och alias möjliggör ökad datanormalisering
- YAML-ankare och alias tvingar
DRY(inte upprepa dig själv) - i det här exemplet kan en tabellstruktur utformas och bevaras som nära sammanfaller med en databas
- i det här exemplet kan datainmatning och filstorlekar minskas
Fallgropar gropar~~POS=HEADCOMP
- i detta specifika exempel kommer
yaml.load()att producera kapslade ordböcker- under personens namnvärde-par kommer värdet för personen att vara en underordbok
- detta kan vara oönskat, eftersom det bryter likformigheten i bordstrukturen
- Underlåtenhet att korrekt specificera alias leder till saknade data
- (skrivfel skapar trasiga korsreferenser)
- YAML stöder inte filtransklusion genom referens, så alla alias och ankare måste finnas i samma yaml-fil
- inte alla YAML-tolkare stöder pålitligt ankare och alias
Se även
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow