aspose.info
FIL

YAML File Format

Na-update

Ano ang YAML file?

YAML file ay binubuo ng isang wikang YAML (YAML Ain’t Markup Language) na isang Unicode based data-serialization language; ginagamit para sa mga configuration file, internet messaging, object persistence, atbp. Ginagamit ng YAML ang .yaml extension para sa mga file nito. Ang syntax nito ay independiyente sa isang partikular na programming language. Karaniwan, ang YAML ay idinisenyo para sa pakikipag-ugnayan ng tao at upang gumana nang maayos sa mga modernong programming language. Ang suporta para sa pagse-serialize ng mga arbitrary na istruktura ng native na data ay nagpapataas ng pagiging madaling mabasa ng mga file ng YAML, ngunit ginawa nitong medyo kumplikado ang proseso ng pag-parse at pagbuo ng file.

Maikling Kasaysayan

Ang YAML ay unang iminungkahi noong 2001 at binuo nina Clark Evans, Ingy döt Net, at Oren Ben-Kiki. Ang YAML ay unang sinabi na nangangahulugang “Yet Another Markup Language” upang ipahiwatig ang layunin nito bilang isang markup language. Ito ay muling ginamit bilang “YAML Aint Markup Language” upang isaad ang layunin nito bilang data-oriented.

YAML File Format

Ang YAML file ay binubuo ng mga sumusunod na uri ng data

  • Scalars: Scalars are values like Strings, Integers, Booleans, etc.
  • Sequences: Sequences are lists with each item starting with a hyphen (-). Lists can also be nested.
  • Mappings: Mapping gives the ability to list keys with values.

Syntax

  • Whitespace: Ginagamit ang whitespace indentation upang ipahiwatig ang nesting at pangkalahatang istraktura.

    name: John Smith
    contact:
        home:   1012355532
        office:  5002586256
    address:
      street: |
                123 Tornado Alley
                Suite 16
        city:   East Centerville
        state:  KS
    
  • Comments: Isinulat ang mga komento na nagsisimula sa simbolo na “#”.

    # This is a YAML Comment
    
  • Lists: Ang gitling (-) ay ginagamit upang ipahiwatig ang mga miyembro ng listahan sa bawat miyembro sa isang hiwalay na linya. Ang mga miyembro ng listahan ay maaari ding ilakip sa mga square bracket ([…]) na may mga miyembrong pinaghihiwalay ng kuwit (,).

    - A
    - B
    - C
    
    [A, B, C]
    
  • Associative Array: Ang isang associative array ay napapalibutan ng mga kulot na bracket ({…}). Ang mga key at value ay pinaghihiwalay ng colon(:) at ang bawat pares ay pinaghihiwalay ng kuwit (,).

    {name: John Smith, age: 20}
    
  • Strings: Maaaring isulat ang string na may o walang double-quotes (") o single-quotes (’).

    Sample String
    "Sample String"
    'Sample String'
    
  • Scalar Block content: Scalar content can be written in block notation by using the following:

    • |: All live breaks are significant.
    • >: Each line break is folded to space. It removes the leading whitespace for each line.
    data: |
      YAML 
        (YAML Ain't Markup Language)
      is a data-serialization language
    
    data: ?
      YAML (YAML Ain't Markup Language)
      is a data-serialization language
    
  • Multiple Documents: Ang maramihang mga dokumento ay pinaghihiwalay ng tatlong gitling (—) sa isang stream. Ang mga gitling ay nagpapahiwatig ng pagsisimula ng dokumento. Ginagamit din ang mga gitling upang paghiwalayin ang mga direktiba mula sa nilalaman ng dokumento. Ang dulo ng dokumento ay ipinahiwatig ng tatlong tuldok (…).

    ---
    Document 1
    ---
    Document 2
    ...
    
  • Type: Upang tukuyin ang uri ng halaga, ginagamit ang dobleng tandang padamdam (!!).

    a: !!float 123
    b: !!str 123
    
  • Tag: Upang magtalaga ng tag sa isang tala, isang ampersand (&) ang ginagamit at upang i-reference ang node na iyon, isang asterisk (*) ang ginagamit.

    name: John Smith
    bill-to:  &id01
      street: |
              123 Tornado Alley
              Suite 16
      city:   East Centerville
      state:  KS
    
    ship-to:  *id01
    
  • Directives: Ang mga dokumento ng YAML ay maaaring unahan ng mga direktiba sa isang stream. Nagsisimula ang mga direktiba sa isang porsyentong tanda (%) na sinusundan ng pangalan at pagkatapos ay ang mga parameter na pinaghihiwalay ng mga puwang.

    %YAML 1.2
    ---
    Document content
    

YAML file example

Here you can see a docker yaml file example below:

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

Karaniwang, parehong JSON at YAML ay binuo upang magbigay ng nababasa ng tao na format ng pagpapalitan ng data. Ang YAML ay natanto bilang isang superset ng JSON na format. Nangangahulugan ito na maaari nating i-parse ang JSON gamit ang isang YAML parser. Kahit na ang praktikal na pagpapatupad ng teoryang ito ay medyo nakakalito. Samakatuwid, ang ilang pangunahing pagkakaiba sa pagitan ng YAML at JSON ay ibinigay sa ibaba:

YAMLJSON
Complex and time consuming process of parsing Serialized dataQuickly and easily parse JSON serialized data with its simpler design
Less community supportLarger community support and popularity
Supports commentsDoesn’t support comments
Ability to use reference of other data objectsImpossible to serialize complex structures with object references
Hierarchy is denoted by using double space characters. Tab characters are not allowedObjects and Arrays are denoted in braces and brackets.
String quotes are optional but it supports single and double quotes.Strings must be in double quotes.
Root node can be any of the valid data typesRoot node must either be an array or an object.

Mga Sanggunian

Tingnan din