8

我不太了解如何使用特定于应用程序的 YAML 标签,也许是因为我想要使用它们是完全错误的。我正在将 YAML 用于配置文件,并希望使用标签为我的配置加载器提供关于它应该将数据解析为什么数据类型的提示 - 应用程序特定的数据类型。

我也将 libyaml 与 C 一起使用。

所以我正在尝试做类似的事情......

shapes:  
  square: "0,4,8,16"  
  circle: "5,10"  

在我的应用程序中,我想使用标签作为提示,这样我就可以将 square 的值加载到我的 square 数据结构中,并将 circle 的值加载到我的 circle 数据结构中(这些值在本示例中没有任何意义)。

所以我目前正在做:

shapes:  
  square: !square "0,4,8,16"  
  circle: !circle "5,10"  

当我通过标量“0,4,8,16”时,Libyaml 将提供一个“!square”标签。使用此标签向我的加载程序提供如何处理标量的提示是否有效?

既然它对我有用,我更想知道它是否合适。如果没有,我将如何使这更合适。

谢谢。

4

1 回答 1

4

我知道这是一个古老的问题,但无论如何我之前在 yaml 文件中看到过 !int 等,所以我去查看Yaml 1.2 Spec # Tags中的规范

application specific tag: !something |
 The semantics of the tag
 above may be different for
 different documents.

根据文档,看起来您对标签的预期用法对于特定于应用程序的标签是正确的。

于 2011-02-04T21:33:27.243 回答