Skip to content
EntityQ281876· pop 27· linked from 157 articles

Also known as YAML Ain't Markup Language, Yet Another Markup Language, .yaml, .yml

YAML ( ) is a human-readable data serialization language. It is commonly used for configuration files and in applications where data is being stored or transmitted. YAML targets many of the same communications applications as Extensible Markup Language (XML) but has a minimal syntax that intentionally differs from Standard Generalized Markup Language (SGML). It uses Python-style indentation to indicate nesting and does not require quotes around most string values (it also supports JSON style and {...} mixed in the same file).

Key facts

File format.name
YAML
File format.icon
Official YAML Logo.svg
File format._noextcode
on
File format.extensions
,
File format._nomimecode
on
File format.uniform_type
public.yaml
File format.latest_release_version
1.2 (Revision 1.2.2)
File format.genre
Data interchange
File format.standard
<!-- or:
File format.standards
-->
File format.open
Yes

via Wikipedia infobox

Described at

YAML Ain’t Markup Language (YAML™) revision 1.2.2

yaml.org

This is the YAML specification v1.2.2 . It defines the YAML 1.2 data language . There are no normative changes from the YAML specification v1.2 . The primary objectives of this revision are to correct errors and add clarity. This revision also strives to make the YAML language development process more open, more transparent and easier for people to contribute to. The input format is now Markdown instead of DocBook, and the images are made from plain text LaTeX files rather than proprietary drawing software. All the source content for the specification is publicly hosted2 . The previous YAML specification3 was published 12 years ago. In that time span, YAML’s popularity has grown significantly. Efforts are ongoing to improve the language and grow it to meet the needs and expectations of its users. While this revision of the specification makes no actual changes to YAML, it begins a process by which the language intends to evolve and stay modern. The YAML specification is often seen as overly complicated for something which appears to be so simple. Even though YAML often is used for software configuration, it has always been and will continue to be a complete data serialization language. Future YAML plans are focused on making the language and ecosystem more powerful and reliable while simultaneously simplifying the development process for implementers. While this revision of the specification is limiting itself to informational changes only, there is companion documentation intended to guide YAML framework implementers and YAML language users. This documentation can continue to evolve and expand continually between published revisions of this specification. YAML™ (rhymes with “camel”) is a human-friendly, cross language, Unicode based data serialization language designed around the common native data types of dynamic programming languages. It is broadly useful for programming needs ranging from configuration files to internet messaging to object persistence to data auditing and visualization. Together with the Unicode standard for characters4 , this specification provides all the information necessary to understand YAML version 1.2 and to create programs that process YAML information. Chapter 8. Block Style Productions 8.1. Block Scalar Styles 8.1.1. Block Scalar Headers 8.1.1.1. Block Indentation Indicator YAML (a recursive acronym for “YAML Ain’t Markup Language”) is a data serialization language designed to be human-friendly and work well with modern programming languages for common everyday tasks. This specification is both an introduction to the YAML language and the concepts supporting it. It is also a complete specification of the information needed to develop applications for processing YAML. Open, interoperable and readily understandable tools have advanced computing immensely. YAML was designed from the start to be useful and friendly to people working with data. It uses Unicode printable characters, some of which provide structural information and the rest containing the data itself. YAML achieves a unique cleanness by minimizing the amount of structural characters and allowing the data to show itself in a natural and meaningful way. For example, indentation may be used for structure, colons separate key/value pairs and dashes are used to create “bulleted” lists . There are many kinds of data structures , but they can all be adequately represented with three basic primitives: mappings (hashes/dictionaries), sequences (arrays/lists) and scalars (strings/numbers). YAML leverages these primitives and adds a simple typing system and aliasing mechanism to form a complete language for serializing any native data structure . While most programming languages can use YAML for data serialization, YAML excels in working with those languages that are fundamentally built around the three basic primitives. These include common dynamic languages such as JavaScript, Perl, PHP, Python and Ruby. There are hundreds of differe

Excerpt from a page describing this subject · 40,000 chars · not written by Vinony

Wikidata facts

Official name
Yet Another Markup Language
Official website
yaml.org
Image
YAML.jpg
Show 10 more facts
Stack Exchange tag
stackoverflow.com/tags/yaml
file extension
yml
publication date
2001-05-11
inception
2001-03-03
described at URL
yaml.org/spec/1.2.2
media type
application/yaml
software version identifier
1.2.1
short name
YAML
IM channel URL
chat:yaml.io
source code repository URL
github.com/yaml/yaml-spec
Sources (12)

via Wikidata · CC0

~22 min read

Article

21 sections
Contents
  • History and name
  • Versions
  • Design
  • Syntax
  • Basic components
  • Advanced components
  • Example
  • Features
  • Indented delimiting
  • Non-hierarchical data models
  • Security
  • Data processing and representation
  • Comparison with other serialization formats
  • Comparison with JSON {{anchor|JSON}}
  • Comparison with TOML
  • Comparison with XML
  • Software (emitters and parsers)
  • Criticism
  • See also
  • References
  • External links

YAML ( ) is a human-readable data serialization language. It is commonly used for configuration files and in applications where data is being stored or transmitted. YAML targets many of the same communications applications as Extensible Markup Language (XML) but has a minimal syntax that intentionally differs from Standard Generalized Markup Language (SGML). It uses Python-style indentation to indicate nesting and does not require quotes around most string values (it also supports JSON style and {...} mixed in the same file).

Custom data types are allowed, but YAML natively encodes scalars (such as strings, integers, and floats), lists, and associative arrays (also known as maps, dictionaries or hashmaps). These data types are based on the Perl programming language, though all commonly used high-level programming languages share very similar concepts. The colon-centered syntax, used for expressing key-value pairs, is inspired by electronic mail headers as defined in , and the document separator is borrowed from MIME (). Escape sequences are reused from C, and whitespace wrapping for multi-line strings is inspired by HTML. Lists and hashes can contain nested lists and hashes, forming a tree structure; arbitrary graphs can be represented using YAML aliases (similar to XML in SOAP). YAML is intended to be read and written in streams, a feature inspired by SAX.

Connections

Categories