OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   YAML Ain't Markup Language

[ Lists Home | Date Index | Thread Index ]

Years ago, discussion of simplified XML left this list for SML-DEV.
There were a lot of fruitful conversations on SML-DEV, some of which
have come back here, others of which have gone elsewhere.  YAML seems to
have found its own community, and evolved quite a spec:


Like XML, YAML is built on Unicode text, but its creators have
explicitly set different priorities:

>YAML Ain't Markup Language, abbreviated YAML, is both a human-readable
>data serialization format and processing model. This text describes
>the class of data objects called YAML document streams and partially
>describes the behavior of computer programs that process them.
>YAML document streams encode in a textual form the native data
>constructs of modern scripting languages. Strings, arrays, hashes, and
>other user-defined data types are supported. A YAML document stream
>consists of a sequence of characters, some of which are considered part
>of the document's content, and others that are used to indicate
>document structure.

Human readability and editing are still important, but information
structures come from the programming domain, without a notion of humans
adding metadata to documents.  At the same time, its type system
(http://yaml.org/spec/#.Type-Families) is very different from W3C XML

The differences in structures and approach are made explicit in a brief
section on YAML's relation to XML:

>Newcomers to YAML often search for its correlation to the eXtensible
>Markup Language (XML). While the two languages may actually compete in
>several application domains, there is no direct correlation between
>them. YAML is primarily a data serialization language. XML is often
>used for various types of data serialization but that is not its
>fundamental design goal.
>There are many differences between YAML and XML. XML was designed to
>be backwards compatible with Standard Generalized Markup Language
>(SGML) and thus had many design constraints placed on it that YAML
>does not share. Also XML, inheriting SGML's legacy, is designed to
>support structured documents, where YAML is more closely targeted at
>messaging and native data structures. Where XML is a pioneer in many
>domains, YAML is the result of many lessons from the XML community.
>The YAML and XML information models are starkly different. In XML, the
>primary construct is an attributed tree, where each element has an
>ordered, named list of children and an unordered mapping of names to
>strings. In YAML, the primary constructs are sequence (natively stored
>as an array), mapping (natively stored as a hash) and scalar values
>(string, integer, floating point). This difference is critical since
>YAML's model is directly supported by native data structures in most
>modern programming languages, where XML's model requires mapping
>conventions, or an alternative programming component (e.g. a document
>object model).
>It should be mentioned that there are ongoing efforts to define
>standard XML/YAML mappings. This generally requires that a subset of
>each language be used.

For developers looking for data serialization approaches that are more
amenable to their existing structures than XML, YAML seems worth a much
closer look.  It seems to me to combine XML's structured text foundation
and ASN.1's programming orientation, perhaps giving programmers the best
of both worlds.

Kendall Clark explored YAML last year:

For more of the history of SML-DEV and YAML, see Leigh Dodds' piece at:

Simon St.Laurent
Ring around the content, a pocket full of brackets
Errors, errors, all fall down!
http://simonstl.com -- http://monasticxml.org


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS