Está en la página 1de 4

YAML

YAML es un formato de serialización de datos legible por


humanos inspirado en lenguajes como XML, C, Python, Perl,
YAML
así como el formato para correos electrónicos especificado en
RFC 2822 (publicaciones RFC). YAML fue propuesto por Desarrollador
Clark Evans en 2001, quien lo diseñó junto a Ingy döt Net y Clark Evans
Oren Ben-Kiki. https://yaml.org/
YAML es un acrónimo recursivo que significa YAML Ain't Información general
Markup Language (en castellano, ‘YAML no es un lenguaje de Extensión yaml e yml
marcado’).1 A comienzos de su desarrollo, YAML significaba de archivo
Yet Another Markup Language (‘otro lenguaje de marcado Tipo de application/x-yaml
más’) para distinguir su propósito centrado en los datos en lugar MIME
del marcado de documentos. Sin embargo, dado que se usa Lanzamiento 11 de mayo de 2001
frecuentemente XML para serializar datos y XML es un inicial
auténtico lenguaje de marcado de documentos, es razonable Extendido Extensible Markup Language, Perl
considerar YAML como un lenguaje de marcado ligero. de y JavaScript Object Notation
Formato ?
abierto
Índice
Características
Ejemplos
Listas
Vectores asociativos
Literales de bloque
Preservando retornos de línea
Ignorando retornos de línea
Listas de vectores asociativos
Vectores asociativos de listas
Implementaciones
Véase también
Referencias
Enlaces externos
Implementaciones

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 la 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 vectores 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 vector asociativo viene precedido 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 especiales 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


- BotijoAzul
- BotijoVerde
- Viridiana
- Psicosis
--- # Lista de la compra, formato en línea
[leche, pan, huevos]
[chorizo, morcilla, botijo, pollo]

Vectores 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

--- |
El texto mantiene su estructura,
en el sentido que preserva los retornos de línea.

Esto incluye también líneas en blanco.

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

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


- nombre: Maria Garcia
edad: 27

Vectores asociativos de listas

hombres: [Pepe Lopez, Guillermo Garcia]


mujeres:
- Maria Garcia
- Susana Marquez

Implementaciones
Existen implementaciones de YAML para los siguientes lenguajes:

JavaScript
Objective-C
Perl
PHP
Python
Ruby (utiliza YAML como el formato de serialización por defecto; YAML está incluido en la biblioteca estándar
desde la versión 1.8)
Java
Haskell
XML (en borrador)

Véase también
JSON
Simple Outline XML
OGDL
Expresión S
Plist

Referencias
1. Página web de YAML. (http://www.yaml.org/)

Enlaces externos
«YAML.org» (http://www.yaml.org) (en inglés).
«YAML Specification» (http://www.yaml.org/spec/) (en inglés).
«YAML Cookbook» (https://web.archive.org/web/20080509211926/http://yaml4r.sourceforge.net/cookbook/) (en
inglés). Archivado desde el original (http://yaml4r.sourceforge.net/cookbook/) el 9 de mayo de 2008.
YAML Ain’t Markup Language Especificación 1.2 (http://www.etnassoft.com/biblioteca/yaml-ain%E2%80%99t-ma
rkup-language/) (pdf) (en inglés). OpenLibra. 2009.

Implementaciones
YAML (http://search.cpan.org/search?query=YAML&mode=all) módulos Perl en CPAN (en inglés).
Validador YAML (https://codebeautify.org/yaml-validator) (en inglés).

Obtenido de «https://es.wikipedia.org/w/index.php?title=YAML&oldid=117868656»

Esta página se editó por última vez el 30 jul 2019 a las 22:08.

El texto está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0; pueden aplicarse
cláusulas adicionales. Al usar este sitio, usted acepta nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una organización sin ánimo de lucro.

También podría gustarte