Zum Inhalt springen

YAML

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 14. Juli 2007 um 10:19 Uhr durch 62.143.2.93 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

YAML ist ein rekursives Akronym für „YAML Ain't Markup Language“ (ursprünglich „Yet Another Markup Language“). YAML ist eine Sprache zur Datenserialisierung, angelehnt an XML und an die Datenstrukturen in den Sprachen Perl, Python und C sowie dem in RFC 2822 vorgestellten E-Mail-Format. Die Idee zu YAML stammt von Clark Evans, die Spezifikation wurde von ihm selbst, Brian Ingerson und Oren Ben-Kiki erstellt.

Design-Ziele

Die grundsätzliche Annahme von YAML ist, dass sich jede beliebige Datenstruktur nur mit assoziativen Listen (Hashes), Listen (Arrays) und Einzelwerten (Skalaren) darstellen lässt. Durch dieses einfache Konzept ist YAML wesentlich leichter von Menschen zu lesen und zu schreiben als beispielsweise XML, außerdem vereinfacht es die Weiterverarbeitung der Daten, da die meisten Sprachen solche Konstrukte bereits integriert haben.

Beispiele

Listen (das Zeichen # leitet einzeilige Kommentare ein, --- markiert den Beginn eines neuen Abschnitts):

--- # Favorite movies, block format
- Casablanca
- Spellbound
- Notorious
--- # Shopping list, inline format
[milk, bread, eggs]

Hashes:

--- # Block
name: John Smith
age: 33
--- # Inline
{name: John Smith, age: 33}

Block-Ausdrücke, in denen Zeilenumbrüche beibehalten werden:

--- |
  There was a young fellow of Warwick
  Who had reason for feeling euphoric
      For he could, by election
      Have triune erection
  Ionic, Corinthian, and Doric

Block-Ausdrücke, in denen einzelne Zeilenumbrüche ignoriert werden:

--- >
  Wrapped text
  will be folded
  into a single
  paragraph
  
  Blank lines denote
  paragraph breaks

Liste von Hashes:

- {name: John Smith, age: 33}
-
  name: Mary Smith
  age: 27

Hash von Listen:

men: [John Smith, Bill Jones]
women:
  - Mary Smith
  - Susan Williams

Implementierungen

YAML-Implementierungen existieren unter anderem für die Programmiersprachen JavaScript, Perl, PHP, Python sowie Ruby.

Andere Bedeutungen

Mit Yet Another (etwa „noch ein weiteres …“) beginnende Bezeichnungen sind sehr verbreitet. So bezeichnet YAML auch das populäre CSS-Framework und -Tutorial Yet Another Multicolumn Layout (www.yaml.de). Dieses robuste Programmgerüst ermöglicht es Webdesignern, barrierearme Webseiten mit vergleichsweise geringem Aufwand zu erstellen. Für verschiedene Content-Management-Systeme existieren Integrationen des YAML-Basislayouts, u. a. für TYPO3, Joomla!, xt:commerce oder Drupal.