4.2.7. 选择(Choices
)
YANG
允许数据模型使用“choice
”和“case
”语句将不兼容的节点分隔为不同的选项。 “choice
”语句包含一组“case
”语句,用于定义不能一起出现的模式节点集合。 每个“case
”可能包含多个节点,但每个节点可能只出现在“choice
”下的一个“case
”中。
choice
和case
节点仅出现在模式树(schema tree
)中,而不出现在数据树中。 概念模式之外不需要额外的层次结构。 一个case
的存在是由一个或多个节点的存在表示。
由于只有一个选择的情况在任何时候都是有效的,所以当在数据树中创建一个节点时,所有其他情况下的所有节点都被隐式删除。 服务器处理约束的执行,防止配置中存在不兼容。
YANG
示例:
container food {
choice snack {
case sports-arena {
leaf pretzel {
type empty;
}
leaf beer {
type empty;
}
}
case late-night {
leaf chocolate {
type enumeration {
enum dark;
enum milk;
enum first-available;
}
}
}
}
}
XML
编码示例:
<food>
<pretzel/>
<beer/>
</food>
第7.9节介绍了“choice
”的声明。