YAML Roadmap

What follows is an attempt to break the Yaml language down into meaningful chunks....

Each block below is a complete feature set.

A person implementing a Yaml parser would likely implement a single block at a time.

Lower blocks may depend on higher blocks. Lower blocks also tend to be of greater complexity than higher blocks. Blocks on the left and right are completely independent of each other.

Those at the same vertical level are of roughly the same complexity. With the exception of double quoted strings, each feature exists in only one block. Each colored set of blocks represents a unique category of the Yaml language. Parsers might differentiate themselves by how many categories they support.

Simplified Yaml

  • Yaml documents
    • Lines
    • Indentation
    • Directives
    • Content
    • Comments
      • Sequence blocks
      • Map blocks
    • Comments

Simple Json

  • Json tokens
  • Json values
    • Double-quoted strings
  • Json collections
    • Sequence flows
    • Map flows

Basic Strings

  • Double-quoted strings
  • Single-quoted strings
  • Multi-line plain scalars
  • Multi-line quoted scalars

Scalar Blocks

  • Literal blocks
  • Folded blocks
  • Blocks modifiers

Simple Types (Complete Json)

  • Simple types
    • Strings, numbers, booleans, nulls

Complete Types

  • Explict types
  • Additional scalar types
  • Additional collection types
  • Taguris


  • Anchors
  • Alias

Full Collection Syntax

  • Scalar keys
  • Complex mappings

Formal Yaml

  • Documents
  • Directives
  • Unicode