YAML - Właściwości węzła

Każdy węzeł prezentacji zawiera dwie główne cechy zwane anchor i tag. Właściwości węzła można określić za pomocą zawartości węzła, pominiętej w strumieniu znaków.

Podstawowy przykład reprezentacji węzłów jest następujący -

%YAML 1.1
---
!!map {
   ? &A1 !!str "foo"
   : !!str "bar",
   ? !!str &A2 "baz"
   : *a1
}

Kotwice węzłów

Właściwość anchor reprezentuje węzeł do wykorzystania w przyszłości. Strumień znaków reprezentacji YAML w węźle jest oznaczonyampersand (&)wskaźnik. Procesor YAML nie musi zachowywać nazwy zakotwiczenia z zawartymi w niej szczegółami reprezentacji. Poniższy kod wyjaśnia to -

%YAML 1.1
---
!!map {
   ? !!str "First occurence"
   : &A !!str "Value",
   ? !!str "Second occurence"
   : *A
}

Dane wyjściowe YAML wygenerowane za pomocą węzłów zakotwiczenia pokazano poniżej -

---
!!map {
   ? !!str "First occurence"
   : !!str "Value",
   ? !!str "Second occurence"
   : !!str "Value",
}

Tagi węzłów

Właściwość tag reprezentuje typ natywnej struktury danych, która całkowicie definiuje węzeł. Znacznik jest reprezentowany przez (!) wskaźnik. Tagi są uważane za nieodłączną część wykresu reprezentacji. Poniższy przykład wyjaśnia szczegółowo znaczniki węzłów -

%YAML 1.1
---
!!map {
   ? !<tag:yaml.org,2002:str> "foo"
   : !<!bar> "baz"
}

Zawartość węzła

Zawartość węzła można przedstawić w postaci przepływu lub w formacie bloku. Zawartość bloku rozciąga się do końca wiersza i używa wcięć do oznaczenia struktury. Każdy rodzaj kolekcji może być reprezentowany w określonym stylu kolekcji z pojedynczym przepływem lub może być traktowany jako pojedynczy blok. Poniższy kod wyjaśnia to szczegółowo -

%YAML 1.1
---
!!map {
   ? !!str "foo"
   : !!str "bar baz"
}

%YAML 1.1
---
!!str "foo bar"

%YAML 1.1
---
!!str "foo bar"

%YAML 1.1
---
!!str "foo bar\n"