7.19. “扩展”声明

extension”语句允许定义YANG语言中的新语句。这个新的语句定义可以被其他模块导入和使用。

extension”语句的参数是一个标识符,它是扩展名的新关键字,后面必须跟着一个包含详细扩展信息的子语句块。 “extension”语句的目的是定义一个关键字,使其可以被其他模块导入和使用。

扩展名可以像普通的YANG语句一样使用,如果语句名由“extension”语句定义,则语句名后跟一个参数,并且可以包含一个可选的子语句块。该语句的名称是通过组合定义扩展名的模块的前缀,冒号(“:”)和扩展的关键字来创建的,没有交织空白。扩展的子语句由“extension”语句定义,使用本规范范围之外的某种机制。语法上,子语句必须是YANG语句,包括使用“extension”语句定义的扩展名。在扩展中的YANG语句必须遵循第14节中的语法规则。

扩展可以允许细化(参见7.13.2节)和偏差(参见7.20.3.2),但是定义的机制超出了本规范的范围。

7.19.1. extension子语句

+--------------+---------+-------------+
| substatement | section | cardinality |
+--------------+---------+-------------+
| argument     | 7.19.2  | 0..1        |
| description  | 7.21.3  | 0..1        |
| reference    | 7.21.4  | 0..1        |
| status       | 7.21.2  | 0..1        |
+--------------+---------+-------------+

7.19.2. “argument”声明

可选的“argument”语句将一个字符串作为参数,该字符串是关键字参数的名称。 如果不存在“argument”语句,则关键字在使用时不需要参数。

这个参数的名字在YIN映射中使用,它被用作XML属性或元素名称,具体取决于参数的“yin-element”语句。

7.19.2.1. “argument”子语句

+--------------+----------+-------------+
| substatement | section  | cardinality |
+--------------+----------+-------------+
| yin-element  | 7.19.2.2 | 0..1        |
+--------------+----------+-------------+

7.19.2.2. “yin-element”声明

yin-element”语句是可选的,它将字符串“true”或“false”作为参数。 此语句指示参数是映射到YIN中的XML元素还是映射到XML属性(请参阅第13节)。

如果没有“yin-element”语句,则默认为“false”。

7.19.3. 使用示例

要定义一个扩展:

module example-extensions {
  yang-version 1.1;
  ...

  extension c-define {
    description
      "Takes as an argument a name string.
       Makes the code generator use the given name
       in the #define.";
    argument "name";
  }
}

要使用扩展名:

module example-interfaces {
  yang-version 1.1;

  ...
  import example-extensions {
    prefix "myext";
  }
  ...

  container interfaces {
    ...
    myext:c-define "MY_INTERFACES";
  }
}

results matching ""

    No results matching ""