aspose.info
FI

YAML tiedostomuoto

Päivitetty

Mikä on YAML-tiedosto?

YAML-tiedosto koostuu kielestä YAML (YAML Ain’t Markup Language), joka on Unicode-pohjainen tietojen serialointikieli; käytetään määritystiedostoihin, Internet-viesteihin, objektien pysyvyyteen jne. YAML käyttää tiedostoissaan .yaml-laajennusta. Sen syntaksi on riippumaton tietystä ohjelmointikielestä. Pohjimmiltaan YAML on suunniteltu ihmisten vuorovaikutukseen ja toimimaan hyvin nykyaikaisten ohjelmointikielten kanssa. Tuki mielivaltaisten alkuperäisten tietorakenteiden sarjoittamiselle lisäsi YAML-tiedostojen luettavuutta, mutta se on tehnyt jäsennys- ja tiedostojen luontiprosessista hieman monimutkaisen.

Lyhyt historia

YAML ehdotettiin ensimmäisen kerran vuonna 2001, ja sen kehittivät Clark Evans, Ingy döt Net ja Oren Ben-Kiki. YAML:n sanottiin ensin tarkoittavan Yet Another Markup Language osoittamaan sen tarkoitusta merkintäkielenä. Myöhemmin se muutettiin nimellä YAML Aint Markup Language osoittamaan sen tarkoitusta datasuuntautuneeksi.

YAML-tiedostomuoto

YAML-tiedosto koostuu seuraavista tietotyypeistä

  • Skalaarit: Skalaarit ovat arvoja, kuten merkkijonot, kokonaisluvut, loogiset luvut jne.
  • Sekvenssit: Jaksot ovat luetteloita, joissa jokainen kohta alkaa yhdysmerkillä (-). Listat voidaan myös sisäkkäin.
  • Mappings: Kartoitus antaa mahdollisuuden luetella avaimet arvoineen.

Syntaksi

  • Tyhjäväli: Välilyöntien sisennystä käytetään osoittamaan sisäkkäisyyttä ja yleistä rakennetta.
nimi: John Smith
ottaa yhteyttä:
koti: 1012355532
toimisto: 5002586256
osoite:
katu: |
123 Tornado Alley
Sviitti 16
kaupunki: East Centerville
valtio: KS
  • Kommentit: Kommentit kirjoitetaan alkaen #-symbolilla.
# Tämä on YAML-kommentti
  • Listat: Tavuviivaa (-) käytetään osoittamaan luettelon jäseniä, joissa jokainen jäsen on erillisellä rivillä. Listan jäsenet voidaan myös sulkea hakasulkeissa ([…]) ja jäsenet erotettuina pilkuilla (,).
  - "A"
  - "B"
  - "C"
[A, B, C]
  • Associative Array: Assosiatiivista taulukkoa ympäröivät kiharat hakasulkeet ({…}). Avaimet ja arvot erotetaan kaksoispisteellä (:) ja kukin pari on erotettu pilkulla (,).
{nimi: John Smith, ikä: 20}
  • Jousut: Merkkijono voidaan kirjoittaa lainausmerkeillä () tai lainausmerkeillä (’) tai ilman niitä.
Näytemerkkijono
"Näytemerkkijono"
Näytemerkkijono
  • Skalaarilohkon sisältö: Skalaarisisältö voidaan kirjoittaa lohkomerkinnällä käyttämällä seuraavaa:
    • “|: Kaikki suorat tauot ovat merkittäviä.”
    • “>: Jokainen rivinvaihto on taitettu välilyöntiin. Se poistaa jokaiselta riviltä johtavan välilyönnin.”
tiedot: |
YAML
(YAML ei ole kuvauskieli)
on tietojen serialisointikieli
tiedot: ?
YAML (YAML ei ole kuvauskieli)
on tietojen serialisointikieli
  • Useita asiakirjoja: Useat asiakirjat erotetaan kolmella yhdysviivalla (—) samassa virrassa. Tavuviivat osoittavat asiakirjan alun. Tavuviivoja käytetään myös erottamaan käskyt asiakirjan sisällöstä. Asiakirjan loppu on merkitty kolmella pisteellä (…).
  ---
Asiakirja 1
  ---
Asiakirja 2
...
  • Tyyppi: Arvon tyypin määrittämiseen käytetään kaksoishuutomerkkejä (!!).
a: !!kelluke 123
b: !!str 123
  • Tunniste: Tunnisteen määrittämiseksi muistiinpanoon käytetään et-merkkiä (&) ja solmuun viitattaessa käytetään tähteä (*).
nimi: John Smith
laskutusosoite: &id01
katu: |
123 Tornado Alley
Sviitti 16
kaupunki: East Centerville
valtio: KS

toimitusosoite: *id01
  • Direktiivit: YAML-asiakirjoja voidaan edeltää virrassa olevia ohjeita. Ohjeet alkavat prosenttimerkillä (%), jota seuraa nimi ja sitten parametrit välilyönnillä erotettuina.
%YAML 1.2
  ---
Asiakirjan sisältö

Esimerkki YAML-tiedostosta

Tässä näet docker yaml -tiedoston esimerkin alla:

topology:
database_node_name: docker_controller
docker_controller_node_name: docker_controller
self_service_portal_node_name: docker_controller
kvm_compute_node_names: kvm_compute1
docker_compute_node_names: docker_compute1

YAML vs JSON

Pohjimmiltaan sekä JSON että YAML on kehitetty tarjoamaan ihmisen luettavissa oleva tiedonsiirtomuoto. YAML on toteutettu JSON-muodon superjoukkona. Se tarkoittaa, että voimme jäsentää JSONia YAML-jäsennin avulla. Vaikka tämän teorian käytännön toteutus on vähän hankalaa. Siksi alla on joitain peruseroja YAML:n ja JSON:n välillä:

YAMLJSON
Monimutkainen ja aikaa vievä sarjoitettujen tietojen jäsennysprosessiJSON-sarjamuotoisten tietojen jäsentäminen nopeasti ja helposti yksinkertaisemmalla suunnittelulla
Vähemmän yhteisön tukeaSuurempi yhteisön tuki ja suosio
Tukee kommenttejaEi tue kommentteja
Kyky käyttää viittauksia muihin tietoobjekteihinMonimutkaisten rakenteiden sarjoittaminen objektiviittauksilla on mahdotonta
Hierarkia merkitään käyttämällä kaksoisvälimerkkejä. Sarkainmerkit eivät ole sallittujaObjektit ja taulukot on merkitty aaltosulkeilla.
Lausausmerkit ovat valinnaisia, mutta se tukee kerta- ja kaksoislainausmerkkejä.Merkijonojen on oltava lainausmerkeissä.
Juurisolmu voi olla mikä tahansa kelvollisista tietotyypeistäJuurisolmun on oltava joko array tai objekti.

Viitteet

  • {{HYPERLINKKI1}}
  • {{HYPERLINKKI1}}

Katso myös