取余运算的模型(%)
Yang model for remainder operation (%)
我想创建一些整数范围的阳模型,例如从 1000 到最大值,并且必须以 500 为步长输入值。有什么方法可以在阳或范围中使用余数(模数)% 运算符功能类似于 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>
没问题。
我想创建一些整数范围的阳模型,例如从 1000 到最大值,并且必须以 500 为步长输入值。有什么方法可以在阳或范围中使用余数(模数)% 运算符功能类似于 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>
没问题。