6.4. XPath
评估
YANG
依靠XML
路径语言(XPath
)1.0 [XPATH]作为指定许多节点间引用和依赖关系的符号。实现不需要实现XPath
解释器,但必须确保在数据模型中编码的需求得到执行。执行的方式是执行决定。 XPath
表达式必须在语法上是正确的,所有使用的前缀必须存在于XPath
上下文中(见第6.4.1节)。实现可以选择手动实现它们,而不是直接使用XPath
表达式。
XPath
表达式中使用的数据模型与XPath 1.0
[XPATH]中使用的数据模型相同,具有与XSLT 1.0
所使用的根节点子节点相同的扩展名(请参见[XSLT]中的第3.1节)。具体而言,这意味着根节点可以具有任意数量的元素节点作为其子节点。
数据树没有文档顺序的概念。一个实现需要选择一些文档顺序,但是如何做是一个实现的决定。这意味着YANG
模块中的XPath
表达式不应该依赖于任何特定的文档顺序。
XPath 1.0
中的数字是IEEE 754
[IEEE754-2008]双精度浮点值;参见[XPATH]中的第3.5节。这意味着int64
,uint64
和decimal64
类型的某些值(请参见第9.2和9.3节)不能在XPath
表达式中精确表示。因此,在XPath
表达式中使用具有64
位数值的节点时,应该谨慎行事。特别是涉及到对比的数字比较可能会产生意想不到的结果。
例如,请考虑以下定义:
leaf lxiv {
type decimal64 {
fraction-digits 18;
}
must ". <= 10";
}
具有值10.0000000000000001
的“lxiv
”叶的实例将成功通过验证。