2009-10-21 65 views
6

我不太明白如何使用特定于应用程序的YAML标签,也可能是因为我期望的使用它们是纯粹错误的。我正在使用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" 

Libyaml将提供的“不散!”当我通过了标量“0,4,8,16”的标签。使用这个标签为我的装载程序提供如何处理标量的提示是否有效?

既然它对我有用,我更加好奇它是否适合。如果不是的话,我会如何做出更恰当的做法。

谢谢。

回答

3

我知道这是一个古老的问题,但无论如何,我见过!INT等YAML里面被使用之前,所以我去查查规格在Yaml 1.2 SpeC# Tags

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

按文档,它确实看起来像你想要使用的标签对应用程序特定的标签是正确的。