2017-08-30 23 views

回答

1

在指定分组的用法时,您将使用refine语句。

module mandatory-and-grouping { 
    namespace "org:example:mandatory-and-grouping"; 
    prefix "mag"; 

    grouping my-grouping { 
    leaf my-leaf { 
     type string; 
    } 
    } 

    container top { 
    uses my-grouping { 
     refine my-leaf { 
     mandatory true; 
     } 
    } 
    } 
} 

7.13.2。 “细化”声明

分组中每个节点的一些属性可以通过“refine”语句来提炼 。参数是 标识分组中的一个节点的字符串。这个节点被称为细化的 目标节点。如果分组中的一个节点不存在作为“精炼”语句的目标节点,则不会精炼,因此将与其在分组中定义的完全一样使用 。

参数字符串是后代架构节点标识符(请参阅 Section 6.5)。

下面的改进可以做到:

  • 叶或选择节点可能会得到一个默认值,或者一个新的默认 值,如果它已经有了一个。

  • 叶节点列表节点可能会得到一组默认值,或者一组新的默认值(如果它已经有默认值的话);即,精确的默认值集合取代了已经给出的默认值。

  • 任何节点都可能获得专门的“描述”字符串。

  • 任何节点都可能得到一个专用的“引用”字符串。

  • 任何节点可能会得到不同的“config”语句。

  • leaf,anydata,anyxml或choice节点可能会得到不同的 “强制性”语句。

  • 容器节点可能会得到一个“存在”语句。

  • 叶,叶列表,列表,容器,anydata或anyxml节点可能会获得额外的“必须”表达式。

  • 叶列表或列表节点可能会得到不同的“最小元素”或“最大元素”语句。 anyxml节点可能会获得额外的“if-feature”表达式。

  • 任何节点都可以得到细化的扩展,如果扩展允许 细化。详情请参阅Section 7.19

RFC7950, Section 7.13.2