使用YAML标记表示类型

时间:2009-10-21 07:00:12

标签: tags yaml typing

我不太明白如何使用特定于应用程序的YAML标签,也许是因为我希望使用它们纯粹是错误的。我使用YAML作为配置文件,并希望使用标签为我的配置加载器提供一个提示,告诉它应该将数据解析为什么数据类型 - 特定于应用程序的数据类型。

我也在使用带有C的libyaml。

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

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

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

所以我现在正在做:

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

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

因为它对我有用,所以我更想知道它是否合适。如果没有,我将如何使这更合适。

感谢。

1 个答案:

答案 0 :(得分:3)

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

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

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