Documentation

    Table of Content
    • 3D File Formats
      • 3D File Formats
      • 3D2
      • 3DM
      • 3DS
      • 3MF
      • AMF
      • ASE
      • B3D
      • DAE
      • DRC
      • E57
      • FBX
      • GLB
      • GLTF
      • IPT
      • JT
      • MA
      • MB
      • MP
      • OBJ
      • PLY
      • PRC
      • RVM
      • STEP
      • STP
      • U3D
      • USD
      • USDZ
      • VRML
      • X
      • X3D
    • Audio File Formats
      • Audio File Formats
      • 8SVX
      • AA
      • AAC
      • AAX
      • AC3
      • ACT
      • AIFF
      • ALAC
      • AMR
      • APE
      • CDA
      • DSS
      • FLAC
      • GSM
      • M3U
      • M3U8
      • M4A
      • M4B
      • M4P
      • MID
      • MKA
      • MMF
      • MOD
      • MP2
      • MP3
      • MPC
      • MXL
      • NSA
      • OGG
      • OPUS
      • RA
      • RF64
      • SDT
      • STAP
      • VOC
      • VOX
      • VQF
      • WAV
      • WFP
      • WMA
      • WPL
      • WV
    • CAD File Formats
      • CAD File Formats
      • ART
      • ASC
      • ASM
      • CATPART
      • CF2
      • DC3
      • DGN
      • DST
      • DWF
      • DWFX
      • DWG
      • DWT
      • DXF
      • FZP
      • HPGL
      • IFC
      • IGES
      • IGS
      • JVSG
      • NC
      • NWC
      • NWD
      • NWF
      • PAT
      • PHJ
      • PLT
      • PSM
      • PSS
      • RFA
      • RFT
      • RML
      • RVT
      • SLDPRT
      • STL
    • Compression File Formats
      • Compression File Formats
      • 7Z
      • ACE
      • ALZ
      • APK
      • ARC
      • ARJ
      • B6Z
      • BKF
      • BZ2
      • DAA
      • DAR
      • DEB
      • DMG
      • DZ
      • FZPZ
      • GZ
      • ICE
      • ISO
      • KGB
      • LBR
      • LQR
      • LZ
      • LZ4
      • LZH
      • LZMA
      • LZO
      • LZX
      • MBW
      • MINT
      • MPKG
      • MPQ
      • NPK
      • OAR
      • PAGES
      • PEA
      • PET
      • PKG
      • PTK
      • PUP
      • RAR
      • RPM
      • RTE
      • SIFZ
      • SITX
      • SY_
      • TAR
      • TBZ
      • TGS
      • TGZ
      • TPSR
      • TZ
      • VPK
      • WUX
      • XAPK
      • XAR
      • XZ
      • Z
      • ZIM
      • ZIP
      • ZIPX
      • ZL
    • Database
      • Database File Formats
      • 4DB
      • 4DD
      • ACCDB
      • ACCDC
      • ACCDE
      • ACCDR
      • ACCDT
      • ACCDW
      • ACCFT
      • ADB
      • ADE
      • ADF
      • ADN
      • ADP
      • ALF
      • ANB
      • AQ
      • ASK
      • BAK
      • BCP
      • BTR
      • CDB
      • DACPAC
      • DAT
      • DB
      • DB3
      • DBC
      • DBF
      • DDL
      • DTSX
      • FMP12
      • FMPSL
      • FP5
      • FP7
      • GDB
      • ITW
      • LDF
      • LOG
      • MDB
      • MDF
      • MYI
      • NDF
      • NSF
      • SAV
      • SDF
      • SQL
      • SQLITE
      • TE
      • TRC
      • TRM
      • UDL
      • WDB
    • Disc and Media
      • Disc and Media File Formats
      • BIN
      • CCD
      • CSO
      • CUE
      • GADGET
      • IMG
      • NKIT
      • NRG
      • OVA
      • OVF
      • ROM
      • SDI
      • Toast
      • UDF
      • VCD
      • VDI
      • VHD
      • WBFS
      • WIM
      • WUD
    • EBook File Formats
      • EBook File Formats
      • ACSM
      • AEP
      • APNX
      • AVA
      • AZW
      • AZW1
      • AZW3
      • AZW4
      • BKK
      • BPNUEB
      • CBC
      • CBR
      • CBZ
      • CEB
      • CEBX
      • DNL
      • EA
      • EAL
      • EBK
      • EDN
      • EPUB
      • ETD
      • FB2
      • FKB
      • HAN
      • HTML0
      • HTMLZ
      • HTXT
      • HTZ4
      • HTZ5
      • IBOOKS
      • KFX
      • KOOB
      • LIT
      • LRF
      • LRS
      • LRX
      • MART
      • MBP
      • MOBI
      • NCX
      • NVA
      • OEB
      • OEBZIP
      • OPF
      • ORB
      • PHL
      • PML
      • PMLZ
      • POBI
      • QMK
      • RB
      • RZB
      • RZS
      • SNB
      • TCR
      • TK3
      • TPZ
      • TR
      • TR3
      • VBK
      • WEBZ
      • YBK
    • Email File Formats
      • Email File Formats
      • EDB
      • EML
      • EMLX
      • ICS
      • MBOX
      • MSG
      • OFT
      • OLM
      • OST
      • P7S
      • PST
      • RPMSG
      • TNEF
      • VCF
    • Executable
      • Executable File Formats
      • AHK
      • BAT
      • BTAPP
      • CGI
      • CMD
      • COM
      • EXE
      • IPA
      • MSI
      • MST
      • PIF
      • PYC
      • REG
      • WSF
      • WSH
      • XBE
      • XEX
    • Finance
      • Finance File Formats
      • ABA
      • IXBRL
      • XBRL
    • Font
      • Font File Formats
      • BDF
      • CFF
      • CFF2
      • EOT
      • FNT
      • FON
      • JFPROJ
      • MFX
      • OTF
      • PFA
      • PFB
      • PFM
      • SFD
      • TTC
      • TTF
      • Type1
      • WOFF
    • Game File Formats
      • Game File Formats
      • BMZ
      • BNS
      • CLIP
      • CSD
      • CT
      • DEK
      • FOMOD
      • GAM
      • KODU
      • MCWORLD
      • MGX
      • PAK
      • PCC
      • PSS
      • PUP
      • PWF
      • REL
      • REP
      • RPX
      • SAV
      • SFAR
      • SID
      • U8
      • UMX
      • W3N
    • GIS File Formats
      • GIS File Formats
      • 000
      • 3D
      • 3DD
      • ADF
      • APL
      • APR
      • ATX
      • AUX
      • DEM
      • DIV
      • DLG
      • E00
      • ETA
      • FileGDB
      • FIT
      • GeoJSON
      • GLB
      • GMAP
      • GML
      • GPKG
      • GPX
      • IMG
      • KML
      • KMZ
      • LOC
      • MPS
      • NM2
      • NTF
      • OSM
      • QGD
      • QGS
      • QGZ
      • QLR
      • QML
      • SBN
      • SHP
      • SHX
      • SP3
      • SSF
      • TCX
    • Image File Formats
      • Image File Formats
      • AI
      • APNG
      • ART
      • AVIF
      • BMP
      • BPG
      • CDR
      • CLIP
      • CMX
      • CPC
      • CR2
      • CR3
      • CSL
      • CT
      • CUR
      • DCM
      • DCR
      • DCX
      • DDS
      • DIB
      • DICOM
      • DJVU
      • DNG
      • ECW
      • EMF
      • EMZ
      • EXIF
      • FLIF
      • FODG
      • GBR
      • GIF
      • HEIC
      • HEIF
      • ICNS
      • ICO
      • J2C
      • J2K
      • JFIF
      • JP2
      • JPC
      • JPEG
      • JPF
      • JPM
      • JPX
      • JXR
      • MNG
      • MP
      • MPO
      • NEF
      • ODG
      • OTG
      • PCX
      • PNG
      • PPP
      • PSB
      • PSD
      • PSP
      • PSPIMAGE
      • SKP
      • SVGZ
      • TGA
      • THM
      • TIFF
      • WEBP
      • WMF
      • WMZ
      • XPM
      • XPR
    • Misc File Formats
      • Misc File Formats
      • AML
      • ART
      • CTG
      • ENL
      • ERR
      • GPG
      • H4
      • H5
      • ICA
      • KLQ
      • MD5
      • MSO
      • OBB
      • ODF
      • OGG
      • PES
      • RIS
      • RML
      • SSP
      • THM
      • TORRENT
      • VIM
      • VIMRC
      • XMP
      • XSMX
    • Note Taking File Formats
      • Note Taking File Formats
      • ONE
      • ONETOC2
    • Page Description Language
      • Page Description Language
      • CGM
      • EPS
      • INDD
      • INDT
      • OXPS
      • PCL
      • PS
      • SVG
      • SWF
      • TEX
      • XPS
      • XSLFO
    • PDF
      • PDF
      • FDF
      • PDF/A
      • PDF/E
      • PDF/UA
      • PDF/VT
      • PDF/X
      • XFDF
    • Presentation File Formats
      • Presentation File Formats
      • KEY
      • ODP
      • OTP
      • POT
      • POTM
      • POTX
      • PPS
      • PPSM
      • PPSX
      • PPT
      • PPTM
      • PPTX
    • Programming
      • Programming
      • ABC
      • ADDIN
      • AML
      • ANE
      • APA
      • APKS
      • APPX
      • APPXBUNDLE
      • APPXUPLOAD
      • APS
      • ARSC
      • AS
      • ASM
      • AWK
      • C
      • CD
      • Class
      • CMAKE
      • CONFIG
      • CPP
      • CS
      • CSPROJ
      • CXX
      • Dart
      • DIFF
      • EGG
      • ERB
      • G4
      • GO
      • GROOVY
      • H
      • HAML
      • HH
      • HS
      • HTA
      • ICI
      • IN
      • IPR
      • JAR
      • Java
      • JRXML
      • JSP
      • JSPF
      • KT
      • LGO
      • LUA
      • M
      • MAKE
      • MEL
      • MF
      • ML
      • MM
      • MRC
      • MSIX
      • NUPKG
      • NUT
      • PAS
      • PDB
      • PDE
      • PHP
      • PL
      • PY
      • PYD
      • PYI
      • PYM
      • PYW
      • PYX
      • R
      • RBXL
      • RBXM
      • RES
      • RS
      • RST
      • SCALA
      • SCM
      • SCRIPT
      • SH
      • SLN
      • SWIFT
      • TCL
      • TOML
      • TS
      • VB
      • VBPROJ
      • VBS
      • VCXPROJ
      • XSD
      • YAML
      • YML
      • YPR
    • Project Management File Formats
      • Project Management File Formats
      • MPP
      • MPT
      • MPX
      • P6XML
      • XER
    • Publisher File Formats
      • Publisher File Formats
      • PUB
      • PUZ
    • Reporting
      • Reporting File Formats
      • MAR
      • RDL
      • RDLC
      • RPL
      • RPT
    • Spreadsheet File Formats
      • Spreadsheet File Formats
      • 123
      • 12M
      • _XLS
      • _XLSX
      • AST
      • AWS
      • BKS
      • CELL
      • CSV
      • DEF
      • DEX
      • DFG
      • DIF
      • DIS
      • EFU
      • ESS
      • FCS
      • FM
      • FODS
      • FP
      • GNM
      • GNUMERIC
      • IMP
      • MAR
      • NB
      • NUMBERS
      • NUMBERS-TEF
      • ODS
      • OTS
      • PMD
      • PMDX
      • PMVX
      • SDC
      • STC
      • SXC
      • TMV
      • TMVT
      • TSV
      • XAR
      • XL
      • XLA
      • XLAM
      • XLM
      • XLR
      • XLS
      • XLSB
      • XLSM
      • XLSMHTML
      • XLSX
      • XLT
      • XLTHTML
      • XLTM
      • XLTX
    • System File Formats
      • System File Formats
      • AML
      • ASV
      • CAB
      • CFG
      • CPL
      • DLL
      • DMP
      • DRV
      • ETL
      • INI
      • INS
      • LNK
      • SCR
      • SYS
      • TMP
    • Video File Formats
      • Video File Formats
      • 3G2
      • 3GP
      • AMV
      • ARF
      • ASF
      • AVCHD
      • AVI
      • BIK
      • DAV
      • EXO
      • F4V
      • FLV
      • H264
      • H265
      • M2TS
      • M4V
      • MJPEG
      • MK3D
      • MKS
      • MKV
      • MOV
      • MP4
      • MPE
      • MPG
      • MPV
      • MTS
      • MXF
      • NSV
      • QT
      • RM
      • RMVB
      • RV
      • SEC
      • SRT
      • TS
      • VID
      • VOB
      • VP6
      • VP8
      • VP9
      • VTT
      • WEBM
      • WMV
      • XVID
    • Web File Formats
      • Web File Formats
      • A5W
      • AAE
      • ADR
      • AEX
      • ALX
      • AN
      • APKG
      • ARO
      • ASA
      • ASAX
      • ASCX
      • ASHX
      • ASMX
      • ASP
      • ASPX
      • BML
      • CDF
      • CER
      • CFM
      • CFML
      • CHM
      • CODASITE
      • CRDOWNLOAD
      • CRT
      • CSHTML
      • CSS
      • DAP
      • DBM
      • DHTML
      • DML
      • DOCHTML
      • DRAWIO
      • DWT
      • EDGE
      • FMP
      • FWP
      • FWTEMPLATE
      • GDOC
      • GDOCX
      • HAR
      • HDML
      • HTM
      • HTML
      • JHTML
      • JS
      • JSON
      • JSPA
      • LESS
      • MHT
      • MHTML
      • MJS
      • OBML
      • OBML15
      • OBML16
      • P7B
      • P7C
      • PAC
      • PART
      • RHTML
      • RJS
      • RSS
      • Sass
      • SCSS
      • SHTML
      • SPC
      • SSP
      • STC
      • STML
      • TPL
      • TS
      • URL
      • VDW
      • VRT
      • WBS
      • WEBBOOKMARK
      • WEBLOC
      • WEBSITE
      • WHTT
      • WSDL
      • XAML
      • XD
      • XHT
      • XHTML
      • XML
      • XOJ
      • XOML
      • XSLT
      • XUL
      • ZUL
    • Word Processing File Formats
      • Word Processing File Formats
      • ASD
      • DOC
      • DOCM
      • DOCX
      • DOT
      • DOTM
      • DOTX
      • DSC
      • FAQ
      • FODT
      • IPYNB
      • LATEX
      • LTX
      • MAN
      • MD
      • ODM
      • ODT
      • OTT
      • QBL
      • QPF
      • RTF
      • TXT
      • WPD
      • WPS
    • visio
      • Visio File Formats
      • VDW
      • VDX
      • VSD
      • VSDM
      • VSDX
      • VSS
      • VSSM
      • VSSX
      • VST
      • VSTM
      • VSTX
      • VSX
      • VTX
    1. Home
    2. Programming
    3. YAML

    What's on this Page

      • What is a YAML file?
      • Brief History
      • YAML File Format
        • Syntax
      • YAML file example
      • YAML vs JSON
      • References

    What is a YAML file?

    YAML file consists of a language YAML (YAML Ain’t Markup Language) which is a Unicode based data-serialization language; used for configuration files, internet messaging, object persistence, etc. YAML uses the .yaml extension for its files. Its syntax is independent of a specific programming language. Basically, the YAML is designed for human interaction and to work well with modern programming languages. Support for serializing arbitrary native data structures increased the readability of the YAML files, but it has made the parsing and file generation process complicated a little.

    Brief History

    YAML was first proposed in 2001 and was developed by Clark Evans, Ingy döt Net, and Oren Ben-Kiki. YAML was first said to mean “Yet Another Markup Language” to indicate its purpose as a markup language. It was later repurposed as “YAML Aint Markup Language” to indicate its purpose as data-oriented.

    YAML File Format

    YAML file consists of the following data types

    • 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: Whitespace indentation is used to indicate nesting and overall structure.

      name: John Smith
      contact:
          home:   1012355532
          office:  5002586256
      address:
        street: |
                  123 Tornado Alley
                  Suite 16            
          city:   East Centerville
          state:  KS
      
    • Comments: Comments are written beginning with the “#” symbol.

      # This is a YAML Comment
      
    • Lists: Hyphen (-) is used to indicate list members with each member on a separate line. List members can also be enclosed in square brackets ([…]) with members separated by commas (,).

      - A
      - B
      - C
      
      [A, B, C]
      
    • Associative Array: An associative array is surrounded by curly brackets ({…}). The keys and values are separated by colon(:) and each pair is separated by comma (,).

      {name: John Smith, age: 20}
      
    • Strings: String can be written with or without double-quotes (") or 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: Multiple documents are separated by three hyphens (—) in a single stream. Hyphens indicate the start of the document. Hyphens are also used to separate directives from document content. The end of the document is indicated by three dots (…).

      ---
      Document 1
      ---
      Document 2
      ...
      
    • Type: To specify the type of value, double exclamation marks (!!) are used.

      a: !!float 123
      b: !!str 123
      
    • Tag: To assign a tag to a note, an ampersand (&) is used and to reference that node, an asterisk (*) is used.

      name: John Smith
      bill-to:  &id01
        street: |
                123 Tornado Alley
                Suite 16          
        city:   East Centerville
        state:  KS
      
      ship-to:  *id01
      
    • Directives: YAML documents can be preceded by directives in a stream. Directives begin with a percent sign (%) followed by the name and then the parameters separated by spaces.

      %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

    Basically, both JSON and YAML are developed to provide a human-readable data interchange format. The YAML is realized as a superset of JSON format. It means that we can parse JSON using a YAML parser. Although the practical implementation of this theory is little tricky. Therefore, some basic differences between YAML and JSON are given below:

    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.

    References

    • YAML - Wikipedia
    • YAML

    See Also

    • KT File Format
    • AVIF File Format
    • RA File Format
    • XLAM File Format
    • RM File Format