【发布时间】:2017-12-13 16:40:15
【问题描述】:
我想为某个整数范围创建 yang 模型,例如从 1000 到最大值,并且必须以 500 的步长输入值。有什么方法可以在 yang 或 range 函数中使用余数(模数)% 运算符带步骤的python。
或者我只需要使用带有一些正则表达式的模式。
【问题讨论】:
标签: ietf-netmod-yang
我想为某个整数范围创建 yang 模型,例如从 1000 到最大值,并且必须以 500 的步长输入值。有什么方法可以在 yang 或 range 函数中使用余数(模数)% 运算符带步骤的python。
或者我只需要使用带有一些正则表达式的模式。
【问题讨论】:
标签: ietf-netmod-yang
使用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>
没问题。
【讨论】: