Skip to Content

¿Qué es YAML? ¿Se pueden escribir cadenas multilínea?

YAML es el acrónimo de “yet another markup language” (otro lenguaje de marcado más) o de “YAML ain’t markup language” (YAML no es un lenguaje de marcado); este último es un acrónimo recursivo que se utiliza para dejar claro que YAML es para los datos y no para los documentos. YAML es un lenguaje de serialización de datos que se usa para escribir archivos de configuración para la implementación de infraestructura. Por ejemplo, si quiere implementar una aplicación de Docker en Kubernetes, tendrá que usar un archivo YAML para configurar la instancia. YAML es legible por el ser humano, por lo que es fácil crear un archivo y leer sus instrucciones durante las implementaciones.

Si no está familiarizado con YAML, no tardará mucho en darse cuenta de que necesita un modo de romper las cadenas en varias líneas; esta cuestión es una de las preguntas más frecuentes sobre YAML que se hacen en la red. En este artículo, veremos las dos maneras principales de enfocar el tema de las cadenas multilínea de YAML, además de algunas otras preguntas frecuentes sobre este lenguaje.

YAML y el espacio en blanco: lo que hay que saber

Los archivos YAML usan los espacios en blanco y los retornos de carro, pero el contenido se serializa cuando entra en un recurso concreto. Los desarrolladores que crean un archivo YAML pueden dar formato al texto usando sangrías y espacios para facilitar la lectura. YAML trata los espacios en blanco de la misma manera que otros lenguajes, así que puede tener todos los que quiera para formatear un archivo.

Cómo dividir las líneas en las cadenas multilínea de YAML

Al ingerir archivos YAML, en ocasiones puede querer conservar los saltos de línea en una cadena multilínea. Tome el siguiente pseudocódigo como ejemplo:

    clave:

            elemento1

            elemento2

            elemento3

Después de cada elemento de línea (es decir, elemento1, elemento2, elemento3), tiene un retorno de carro. Si deja la sintaxis de YAML tal como está, la cadena será así:

elemento1 elemento2 elemento3

Este formato de cadena crea una cadena larga sin ningún formateo de retorno de carro, por lo que es posible que quiera conservar los saltos de línea. Los saltos de línea pueden conservarse con el operador literal. El operador literal es el carácter de la barra vertical (“|”). Para conservar los saltos de línea, su sintaxis de YAML debería modificarse y ser así:

    clave: |

            elemento1

            elemento2

            elemento3

Fíjese en el carácter de la barra vertical que hay después de la directiva “clave”. Cuando la aplicación ingiere el archivo YAML, lo convierte en la cadena siguiente:

elemento1\nelemento2\nelemento3

El carácter “\n” representa una nueva línea. La impresión de esta cadena para una aplicación mostrará cada elemento con un retorno de carro anexado para conservar el formato en las instrucciones de YAML.

Los bloques multilínea y las cadenas largas en YAML

En las cadenas largas, hay que usar bloques multilínea para leer un archivo YAML. Por ejemplo, si tiene un párrafo de 250 palabras en un archivo YAML, necesita romper las oraciones en bloques multilínea. No querrá conservar los retornos de carro, salvo al final de un párrafo. Puede formatear un archivo YAML para que use múltiples líneas para las cadenas largas y serializar la cadena para anexar espacios a cada elemento, en lugar de un nuevo carácter de línea. 

Para usar un carácter de espacio en blanco en lugar de anexar una nueva línea, use el operador mayor que (“>”):

    clave: >

            elemento1

            elemento2

            elemento3

Con el operador mayor que, YAML añade un espacio cuando crea la cadena. La cadena tiene el aspecto siguiente:

elemento1 elemento2 elemento3\n

Preguntas frecuentes sobre las multilíneas en YAML

¿Cómo se inserta un salto de línea en YAML?

Usando el operador literal (“|”), se conserva cualquier salto de línea de una cadena YAML. Crea un salto de línea pulsando la tecla de retorno de carro de la misma manera que crea un salto de línea en un documento estándar. El ejemplo siguiente conserva el retorno de carro en una cadena de YAML:

    clave: |

            elemento1

            elemento2

            elemento3

¿YAML puede tener líneas en blanco?

Sí, una cadena representada como un bloque de texto también puede contener líneas en blanco. El operador de mantener (“|+”)  conserva cualquier línea vacía en blanco junto con el carácter de nueva línea. El siguiente YAML es un ejemplo de una cadena multilínea con dos líneas en blanco al final del bloque:

    clave: |+

            elemento1

            elemento2

            elemento3

Un analizador de YAML mostrará la siguiente cadena a partir de la sintaxis anterior:

elemento1\nelemento2\nelemento3\n\n

¿YAML tiene en cuenta el espacio en blanco?

El espacio en blanco creado con el tabulador es un carácter no válido en YAML, por lo que cualquier sangría debe utilizar un carácter de espacio simple estándar. Las tabulaciones pueden usarse en las cadenas entrecomilladas, pero no pueden utilizarse para dar formato a un archivo YAML. Es importante mantener la regularidad de las sangrías de espacio en blanco para facilitar la lectura de los datos.

¿Los espacios están permitidos en YAML?

Sí, puede tener espacios estándar a lo largo de un archivo YAML. Los espacios deben usarse para las sangrías en lugar del carácter de tabulación. Los caracteres de tabulación pueden causar errores durante el análisis de un archivo YAML.

CONTACTAR CON NOSOTROS
¿Preguntas, comentarios?

¿Tiene alguna pregunta o comentario sobre los productos o las certificaciones de Pure?  Estamos aquí para ayudarle.

Programe una Demostración

Programe una demostración en vivo y vea personalmente cómo Pure puede ayudarle a convertir sus datos en unos resultados potentes. 

Llámenos al: +34 51 889 8963

Medios de comunicaciónpr@purestorage.com

 

Castellana 81

28046 Madrid

Oficinas Pure: 1415 y 1417 (planta 14)

info@purestorage.com

CERRAR
Your Browser Is No Longer Supported!

Older browsers often represent security risks. In order to deliver the best possible experience when using our site, please update to any of these latest browsers.