YAML
YAML es un formato tipado legible por personas usado para la serialización de datos
YAML es el acrónimo recursivo para "YAML Ain't Markup Language".
El siguiente es un ejemplo de YAML para Clarive (de un Recurso Proyecto):
--- active: 1 assets: [] created_by: root description: '' folders: - active: '1' mid: '1495' moniker: ~ name: Old Projects ts: 2015-09-22 10:15:41 versionid: '1' mid: '932' modified_by: root moniker: APLICACION_PRINCIPAL name: ComplexApp repositories: - active: 1 bl: '*' created_by: root default_branch: HEAD description: 'another repository' exclude: [] include: [] mid: '1220' modified_by: root moniker: '' name: acmebank_cpp rel_path: /cpp repo_dir: /opt/repo/myrepo.git revision_mode: diff tags_mode: bl ts: 2015-02-15 20:35:17 versionid: '1' ts: 2014-10-16 11:56:04 variables: '*': c_compiler_server: '1118' files_server: '103' files_servers: '1118' jboss_server: '103' maven_server: '103' ruta_despliegue_ficheros: /opt/files staging_c_path: /tmp/${project}/cpp staging_path: /tmp/${project}/war tar_path: /tmp/clarivetar DEV: jboss_server: '1118' var2: optCommon TEST: c_servers: 1182,1183 tar_path: /tmp/clarive2 PREP: c_servers: 1184,1185 PROD: c_servers: 1182,1183,1184,1185,1195,1196,1198,1197,1199,1200,1201 SPECIAL: agents_b: '1407' versionid: '1'
YAML se usa de forma extensiva en Clarive porque permite expresar el contenido de los datos en formato legible para usuarios técnicos.
YAML también se usa porque permite al sistema el versionado del contenido de los datos, especialmente Recursos, en un fichero del sistema.
Lee más acerca del formato en:
También, puedes jugar con YAML en el REPL de Clarive o en esta herramienta online:
- http://yaml-online-parser.appspot.com/
Indentación (Sangrado)¶
En YAML la marca es importante, YAML usa un esquema de marcas fijadas que representa las diferentes relaciones entre elementos.
parent: child: grandchild: 10
En JavaScript, los mapas de debajo se usan para el siguiente objeto:
{ parent: { child: { grandchild: 10 } } }
En Clarive, las marcas requiere al menos 1 espacio.
Dos puntos¶
Los Dos Puntos representa pares clave-valor, que son usados para definir objetos (Hashes o diccionarios en otros lenguajes).
key1: valor1 key2: valor2
Lo que en JavaScript se traduce a:
{ key1: 'valor1', key2: 'valor2' }
Dashes¶
Los Dashes son usados para crear listas, o Arrays en JavaScript.
parent: - child1 - child2
En JavaScript, el mapa de debajo muestra el objecto:
{ parent: [ 'child1', 'child2' ] }
Datos Multi-línea¶
Las cadenas multilínea se pueden escribir usando la | (barra vertical) YAML. La marcas son necesarios, hay que
utilizar los espacios iniciales.
mytext: | Long, long, texto multilínea que está con sangría y que puede empezar con espacios. age: 20