yaml
Usando anclas y alias para contenido transcluido
Buscar..
Creación de una tabla "Array of Dictionaries" con anclajes YAML como identificadores de fila
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
Problema
- el desarrollador desea expresar una estructura de tabla en YAML, donde cada fila es referenciada por un identificador de fila compacto
Solución
- use anclajes YAML, asignando un identificador de ancla a cada fila en la tabla
- en YAML, los "identificadores de transclusión" reutilizables se llaman anclas y alias
- en YAML, los "identificadores de transclusión" reutilizables consisten en tokens alfanuméricos precedidos por un signo y un asterisco
Razón fundamental
- Los anclajes y alias de YAML permiten una mayor normalización de los datos
- Los anclajes y los alias de YAML se aplican en
DRY(no se repita) - en este ejemplo, se puede diseñar y conservar una estructura de tabla que coincida estrechamente con una base de datos
Escollos
- Los anclajes YAML deben declararse antes de que puedan ser referenciados por alias.
- Los anclajes YAML deben ser únicos en todo el documento.
- si no se especifican los anclajes únicos, se producirá un error en
yaml.load() - No todos los analizadores YAML admiten de forma fiable anclajes y alias.
Ver también
Uso de alias YAML para hacer referencias cruzadas de una tabla YAML
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
motto_table:
- &motto001
person: *person001
motto: >
D'oh!! YAML is too complicated!
- &motto002
person: *person002
motto: >
Bart! Listen to your father!
- &motto003
person: *person003
motto: >
Hey! YAML is freakin' sweet!
Problema
- el desarrollador desea hacer una referencia cruzada de filas con anclajes de una tabla y vincularlos con filas como alias en otra tabla
Solución
- use alias YAML, que hacen referencia cruzada a los anclajes predefinidos de otra tabla
- en YAML, los "identificadores de transclusión" reutilizables se llaman anclas y alias
- en YAML, los "identificadores de transclusión" reutilizables consisten en tokens alfanuméricos precedidos por un signo y un asterisco
Razón fundamental
- Los anclajes y alias de YAML permiten una mayor normalización de los datos
- Los anclajes y los alias de YAML se aplican en
DRY(no se repita) - en este ejemplo, se puede diseñar y conservar una estructura de tabla que coincida estrechamente con una base de datos
- en este ejemplo, la entrada de datos y el tamaño de los archivos se pueden reducir
Escollos
- en este ejemplo específico,
yaml.load()producirá diccionarios anidados- Esto se conoce como el "problema de diccionarios anidados"
- debajo del par nombre-valor de la persona, el valor para la persona será un sub-diccionario
- esto puede ser indeseable, porque rompe la uniformidad de la estructura de la tabla
- Si no se especifican correctamente los alias, se perderán los datos.
- (Los errores tipográficos crearán referencias cruzadas rotas)
- YAML no admite la transclusión de archivos por referencia, por lo que todos los alias y anclas deben existir en el mismo archivo yaml
- No todos los analizadores YAML admiten de forma fiable anclajes y alias.
Ver también
Usando las teclas de combinación YAML para hacer referencias cruzadas de filas de otra tabla YAML
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
motto_table:
- &motto001
<<: *person001
motto: >
D'oh!! YAML is too complicated!
- &motto002
<<: *person002
motto: >
Bart! Listen to your father!
- &motto003
<<: *person003
motto: >
Hey! YAML is freakin' sweet!
Problema
- el desarrollador desea hacer una referencia cruzada de filas con anclajes de una tabla y vincularlos con filas como alias en otra tabla
- desarrollador desea evitar crear el "problema de diccionarios anidados"
Solución
- usar alias YAML, con claves de fusión YAML
- en YAML, los "identificadores de transclusión" reutilizables se llaman anclas y alias
- en YAML, los "identificadores de transclusión" reutilizables consisten en tokens alfanuméricos precedidos por un signo y un asterisco
Razón fundamental
- Los anclajes y alias de YAML permiten una mayor normalización de los datos
- Los anclajes y los alias de YAML se aplican en
DRY(no se repita) - en este ejemplo, se puede diseñar y conservar una estructura de tabla que coincida estrechamente con una base de datos
- en este ejemplo, la entrada de datos y el tamaño de los archivos se pueden reducir
Escollos
- en este ejemplo específico,
yaml.load()producirá diccionarios anidados- debajo del par nombre-valor de la persona, el valor para la persona será un sub-diccionario
- esto puede ser indeseable, porque rompe la uniformidad de la estructura de la tabla
- Si no se especifican correctamente los alias, se perderán los datos.
- (Los errores tipográficos crearán referencias cruzadas rotas)
- YAML no admite la transclusión de archivos por referencia, por lo que todos los alias y anclas deben existir en el mismo archivo yaml
- No todos los analizadores YAML admiten de forma fiable anclajes y alias.
Ver también
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow