我想用一些整数范围创建yang模型,例如从1000到最大值,并且值必须以500为单位输入。有没有办法可以在yang或range函数中使用余数(模数)%运算符python与步骤。
或者我只需要使用带有一些正则表达式的模式。
答案 0 :(得分:4)
使用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>
没关系。