我有一个分组-
grouping threshold-value-grouping {
container threshold-value {
description "Threshold value";
leaf upper-limit-val {
description
"Upper limit";
type uint32 {
range "1..60000";
}
}
leaf lower-limit-val {
description
"Lower limit";
type uint32 {
range "1..60000";
}
}
}
}
我想在多个地方重复使用此分组。 但是在不同的地方使用时,叶子的范围会有所不同。
所以我想知道如何使用 refine 语句来实现? 还是有解决这个问题的更好方法?
答案 0 :(得分:1)
RFC 7950的7.13.2节明确指定了所有可能的改进,而range
不是其中之一。 type
也不是,这在ABNF语法中也可以看到(第14节):
refine-stmt = refine-keyword sep refine-arg-str optsep
"{" stmtsep
;; these stmts can appear in any order
*if-feature-stmt
*must-stmt
[presence-stmt]
*default-stmt
[config-stmt]
[mandatory-stmt]
[min-elements-stmt]
[max-elements-stmt]
[description-stmt]
[reference-stmt]
"}" stmtsep
但是您可以在这里添加must
约束,例如
uses threshold-value-grouping {
refine threshold-value/upper-limit-val {
must '(. >= 10 and . <= 100)' {
error-message "Here you can only use values between 10 and 100";
}
}
}