2

我想为某个整数范围创建 yang 模型,例如从 1000 到最大值,并且必须以 500 的步长输入值。有什么方法可以在 yang 中使用余数(模数)% 运算符或像 python 的范围函数的步骤.

或者我只需要使用带有一些正则表达式的模式。

4

1 回答 1

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>

没关系。

于 2017-12-13T08:03:56.373 回答