我想为某个整数范围创建 yang 模型,例如从 1000 到最大值,并且必须以 500 的步长输入值。有什么方法可以在 yang 中使用余数(模数)% 运算符或像 python 的范围函数的步骤.
或者我只需要使用带有一些正则表达式的模式。
我想为某个整数范围创建 yang 模型,例如从 1000 到最大值,并且必须以 500 的步长输入值。有什么方法可以在 yang 中使用余数(模数)% 运算符或像 python 的范围函数的步骤.
或者我只需要使用带有一些正则表达式的模式。
使用must
约束来进一步约束已经用 约束的整数类型值range
。
module modulus {
yang-version 1.1;
namespace "org:so:modulus";
prefix "som";
leaf value {
type int32 {
range "1000..max";
}
must ". mod 500 = 0" {
error-message "values must be entered in steps of 500";
}
}
}
XPath 规范提供了mod
操作符。
<?xml version="1.0" encoding="utf-8"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<som:value xmlns:som="org:so:modulus">1501</som:value>
</data>
结果是:
Error at (3:3): failed assert at "/nc:data/som:value": values must be entered in steps of 500
尽管
<?xml version="1.0" encoding="utf-8"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<som:value xmlns:som="org:so:modulus">2000</som:value>
</data>
没关系。