YAML

YAML

YAML es un formato de serialización de datos legible por humanos inspirado en lenguajes como XML, C, Python, Perl, así como el formato para correos electrónicos especificado por el RFC 2822. YAML fue propuesto por Clark Evans en 2001, quien lo diseñó junto a Ingy döt Net y Oren Ben-Kiki.

YAML es un acrónimo recursivo que significa "YAML Ain't Another Markup Language (en castellano, "YAML no es otro lenguaje de marcado"). A comienzos de su desarrollo, YAML significaba "Yet Another Markup Language" ("Otro lenguaje de marcado más") para distinguir su propósito centrado en los datos en lugar del marcado de documentos. Sin embargo, dado que se usa frecuentemente XML para serializar datos y XML es un auténtico lenguaje de marcado de documentos, es razonable considerar YAML como un lenguaje de marcado ligero.

Contenido

Características

YAML fue creado bajo la creencia de que todos los datos pueden ser representados adecuadamente como combinaciones de listas, hashes (mapeos) y datos escalares (valores simples). La sintaxis es relativamente sencilla y fue diseñada teniendo en cuenta que fuera muy legible pero que a la vez fuese fácilmente mapeable a los tipos de datos más comunes en la mayoría de los lenguajes de alto nivel. Además, YAML utiliza una notación basada en el indentación y/o un conjunto de caracteres Sigil distintos de los que se usan en XML, haciendo que sea fácil componer ambos lenguajes.

  • Los contenidos en YAML se describen utilizando el conjunto de caracteres imprimibles de Unicode, bien en UTF-8 o UTF-16.
  • La estructura del documento se denota indentando con espacios en blanco; sin embargo no se permite el uso de caracteres de tabulación para indentar.
  • Los miembros de las listas se denotan encabezados por un guion ( - ) con un miembro por cada línea, o bien entre corchetes ( [   ] ) y separados por coma espacio ( ,   ).
  • Los arrays asociativos se representan usando los dos puntos seguidos por un espacio. en la forma "clave: valor", bien uno por línea o entre llaves ( {   } ) y separados por coma seguida de espacio ( ,   ).
  • Un valor de un array asociativo viene precedida por un signo de interrogación ( ? ), lo que permite que se construyan claves complejas sin ambigüedad.
  • Los valores sencillos (o escalares) por lo general aparecen sin entrecomillar, pero pueden incluirse entre comillas dobles ( " ), o comillas simples ( ' ).
  • En las comillas dobles, los caracteres espaciales se pueden representar con secuencias de escape similares a las del lenguaje de programación C, que comienzan con una barra invertida ( \ ).
  • Se pueden incluir mútliples documentos dentro de un único flujo, separándolos por tres guiones ( --- ); los tres puntos ( ... ) indican el fin de un documento dentro de un flujo.
  • Los nodos repetidos se pueden denotar con un ampersand ( & ) y ser referidos posteriormente usando el asterisco ( * )
  • Los comentarios vienen encabezados por la almohadilla ( # ) y continúan hasta el final de la línea.
  • Los nodos pueden etiquetarse con un tipo o etiqueta utilizando el signo de exclamación( ! ) seguido de una cadena que puede ser expandida en una URL.
  • Los documentos YAML pueden ser precedidos por directivas compuestas por un signo de porcentaje ( % ) seguidos de un nombre y parámetros delimitados por espacios.. Hay definidas dos directivas en YAML 1.1:
    • La directiva %YAML se utiliza para identificar la versión de YAML en un documento dado.
    • La directiva %TAG se utiliza como atajo para los prefijos de URIs. Estos atajos pueden ser usados en las etiquetas de tipos de nodos.

YAML requiere que las comas y puntos y comas que se utilicen como separadores en las listas sean seguidos por un espacio, de forma que los valores escalares que contengan signos de puntuación (como 5,280 o http://www.wikipedia.org) se puedan representar sin necesidad de utilizar comillas.

Hay dos caracteres adicionales que están reservados en YAML para su posible estandarización en un futuro: la arroba ( @ ) y el acento grave ( ` ).

Ejemplos

Listas

--- # Películas favoritas, formato de bloque
- Casablanca
- Viridiana
- Psicosis
--- # Lista de la compra, formato en línea
[leche, pan, huevos]

Arrays asociativos

--- # Bloque
nombre: Pepe López
edad: 33
--- # En  línea
{nombre: Pepe López, edad: 33}

Literales de bloque

Preservando retornos de línea

--- |
 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

Ignorando retornos de línea

--- >
 El texto rodeado 
 será formateado 
 como un único
 párrafo
 Las líneas en blanco
 denotan saltos de párrafo.

Listas de arrays asociativos

- {nombre: Pepe López, edad: 33}
- nombre: Maria Garcia
 edad: 27

Arrays asociativos de listas

hombres: [Pepe Lopez, Guillermo Garcia]
mujeres:
 - Maria Garcia
 - Susana Marquez

Implementaciones

Existen implementaciones de YAMLS para los siguientes lenguajes:

Véase también

Otros lenguajes de marcado simplificado incluyen:

  • JSON, que está muy cerca de ser un subconjunto de YAML.
  • Simple Outline XML
  • OGDL
  • S-expresiónes
  • Plist, el formato de serialización de objetos de NEXTSTEP.

Enlaces externos

Implementaciones


Wikimedia foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Mira otros diccionarios:

  • YAML — (IPAEng|ˈjæməl, rhymes with camel ) is a human readable data serialization format that takes concepts from languages such as XML, C, Python, Perl, as well as the format for electronic mail as specified by RFC [http://www.rfc… …   Wikipedia

  • YAML — человекочитаемый формат сериализации данных, концептуально близкий к языкам разметки, но ориентированный на удобство ввода вывода типичных структур данных многих языков программирования. Название YAML представляет собой рекурсивный акроним YAML… …   Википедия

  • Yaml — человекочитаемый формат сериализации данных, концептуально близкий к языкам разметки, но ориентированный на удобство ввода вывода типичных структур данных многих языков программирования. Название YAML представляет собой рекурсивный акроним YAML… …   Википедия

  • YAML — YAML, acronyme récursif de YAML Ain t Markup Language, est un langage de sérialisation en données Unicode. Il reprend des concepts d autres langages comme XML, ou encore du format de message électronique tel que documenté par RFC 2822. YAML a été …   Wikipédia en Français

  • YAML — ist eine vereinfachte Auszeichnungssprache (engl. markup language) zur Datenserialisierung, angelehnt an XML (ursprünglich) und an die Datenstrukturen in den Sprachen Perl, Python und C sowie dem in RFC 2822 vorgestellten E Mail Format. Die Idee… …   Deutsch Wikipedia

  • Yaml — YAML, acronyme récursif de YAML Ain t Markup Language, est un langage de sérialisation de données qui reprend des concepts d autres langages comme XML, C, Python, et Perl, ou encore du format de message électronique tel que documenté par RFC 2822 …   Wikipédia en Français

  • YAML — noun A retronym for YAML Aint Markup Language that meant originally Yet Another Markup Language …   Wiktionary

  • YAML — abbr. Yaml Ain t Markup Language …   Dictionary of abbreviations

  • YAML (Framework) — YAML (Yet Another Multicolumn Layout) Entwickler Privatperson Aktuelle Version 3.3.1 (18. Juni 2011) Betriebssystem unabhängig Kategorie Webdesign Lizenz …   Deutsch Wikipedia

  • Yml — YAML YAML, acronyme récursif de YAML Ain t Markup Language, est un langage de sérialisation de données qui reprend des concepts d autres langages comme XML, C, Python, et Perl, ou encore du format de message électronique tel que documenté par RFC …   Wikipédia en Français

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”