5.6.2. 可选功能
在许多模型中,建模者将允许模型的各个部分是有条件的。服务器控制模型的这些条件部分是否受支持或对该特定服务器有效。
例如,一个系统日志数据模型可能会选择包含在本地保存日志的功能,但是建模人员会意识到,只有当服务器具有本地存储时才可能这样做。如果没有本地存储,应用程序不应该通知服务器保存日志。
YANG
使用称为“特征”的构造支持这个条件机制。特征为建模者提供了一种以服务器控制的方式使模块的一部分有条件的机制。该模型可以表达不是普遍存在于所有服务器中的结构。这些功能包含在模型定义中,允许一致的视图,并允许应用程序了解哪些功能是受支持的,并定制到服务器的行为。
一个模块可以声明任何数量的特征,用简单的字符串来标识,并且可以根据这些特征使模块的一部分是可选的。如果服务器支持某项功能,则模块的相应部分对该服务器有效。如果服务器不支持该功能,则模块的这些部分无效,并且应用程序应该相应地运行。
功能是使用“feature
”语句定义的。 “if-feature
”语句记录模块中对该功能有条件的定义。
更多细节可参见第7.20.1节。