Yang Schema 中联合类型的默认字符串值
Default string values for union types in Yang Schema
为什么叶 wibble
不能在以下架构中分配默认值 "-"
(注释不在架构中,为清楚起见添加到 post)
module type
{
namespace "example.com";
prefix "foo";
typedef optional-value {
type union {
type uint8 {
range "0 .. 99";
}
type string {
pattern "^-$";
}
}
}
container bar {
leaf wibble {
type optional-value;
default "-"; ### NOT OKAY
}
leaf wobble {
type optional-value;
default 42; ### OKAY
}
}
}
yaglint(版本 0.16.105)未验证上述架构和 returns 错误消息:
err : Invalid value "-" in "wibble" element. (/type:wibble)
err : Module "type" parsing failed.
做了一些更多的实验,似乎无法为带有模式的字符串分配默认值
module tmp
{
namespace "example.com";
prefix "foo";
container bar {
leaf wibble {
type string {
pattern "^x$";
}
default "x"; ### NOT OKAY
}
leaf wobble {
type string;
default "y"; ### OKAY
}
}
}
杨林特输出:
err : Value "x" does not satisfy the constraint "^x$" (range, length, or pattern). (/tmp:wibble)
err : Module "tmp" parsing failed.
在 YANG 中,使用来自 XML Schema 的正则表达式风格,它不需要 ^$
来锚定表达式,以便它们计算整个值。所有 XSD 表达式都是隐式锚定的。您可以尝试从您的模式中删除这些字符,然后再试一次。
为什么叶 wibble
不能在以下架构中分配默认值 "-"
(注释不在架构中,为清楚起见添加到 post)
module type
{
namespace "example.com";
prefix "foo";
typedef optional-value {
type union {
type uint8 {
range "0 .. 99";
}
type string {
pattern "^-$";
}
}
}
container bar {
leaf wibble {
type optional-value;
default "-"; ### NOT OKAY
}
leaf wobble {
type optional-value;
default 42; ### OKAY
}
}
}
yaglint(版本 0.16.105)未验证上述架构和 returns 错误消息:
err : Invalid value "-" in "wibble" element. (/type:wibble)
err : Module "type" parsing failed.
做了一些更多的实验,似乎无法为带有模式的字符串分配默认值
module tmp
{
namespace "example.com";
prefix "foo";
container bar {
leaf wibble {
type string {
pattern "^x$";
}
default "x"; ### NOT OKAY
}
leaf wobble {
type string;
default "y"; ### OKAY
}
}
}
杨林特输出:
err : Value "x" does not satisfy the constraint "^x$" (range, length, or pattern). (/tmp:wibble)
err : Module "tmp" parsing failed.
在 YANG 中,使用来自 XML Schema 的正则表达式风格,它不需要 ^$
来锚定表达式,以便它们计算整个值。所有 XSD 表达式都是隐式锚定的。您可以尝试从您的模式中删除这些字符,然后再试一次。