7.10. “anydata”声明

anydata”语句在模式树中定义一个内部节点。它需要一个参数,它是一个标识符,后面是一个包含详细anydata信息的子状态块。

anydata”语句用于表示可以用YANG建模的未知节点集合,但anyxml除外,但是在模块设计时不知道数据模型。对于任何数据内容的数据模型,虽然不是必需的,但是可以通过协议信令或本文档范围之外的其他手段来获知。

anydata可能有用的示例是在设计时不知道具体通知的收到通知的列表。

anydata节点不能被扩充(见7.17节)。

一个anydata节点存在于数据树的零个或一个实例中。

一个实现可能会或可能不知道用于建模anydata节点的特定实例的数据模型。

由于anydata的使用限制了内容的操作,所以不应该使用“anydata”语句来定义配置数据。

7.10.1. anydata的子语句

+--------------+---------+-------------+
| substatement | section | cardinality |
+--------------+---------+-------------+
| config       | 7.21.1  | 0..1        |
| description  | 7.21.3  | 0..1        |
| if-feature   | 7.20.2  | 0..n        |
| mandatory    | 7.6.5   | 0..1        |
| must         | 7.5.3   | 0..n        |
| reference    | 7.21.4  | 0..1        |
| status       | 7.21.2  | 0..1        |
| when         | 7.21.5  | 0..1        |
+--------------+---------+-------------+

7.10.2. XML编码规则

一个anydata节点被编码为一个XML元素。 元素的本地名称是anydata的标识符,其名称空间是模块的XML名称空间(请参阅第7.1.3节)。 anydata节点的值是一组节点,它们被编码为anydata元素的XML子元素。

7.10.3. NETCONF <edit-config>操作

一个anydata节点被视为一个不透明的数据块。 这些数据只能被整体修改。

NETCONF服务器将忽略anydata节点子元素上的任何“operation”属性。

NETCONF服务器处理<edit-config>请求时,anydata节点的过程元素如下所示:

  • 如果操作是“merge”或“replace”,则创建该节点(如果该节点不存在),并将其值设置为XML RPC数据中找到的anydata节点的子元素。

  • 如果操作是“create”,则创建该节点(如果该节点不存在),并将其值设置为XML RPC数据中找到的anydata节点的子元素。 如果节点已经存在,则返回“data-exists”错误。

  • 如果操作是“delete”,则该节点将被删除(如果存在)。 如果节点不存在,则返回“data-missing”错误。

7.10.4. 使用示例

鉴于以下“anydata”声明:

list logged-notification {
  key time;
  leaf time {
    type yang:date-and-time;
  }
  anydata data;
}

以下是这种列表实例的有效编码:

<time>2014-07-29T13:43:12Z</time>
<data>
  <notification
    xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
    <eventTime>2014-07-29T13:43:01Z</eventTime>
    <event xmlns="urn:example:event">
      <event-class>fault</event-class>
      <reporting-entity>
        <card>Ethernet0</card>
      </reporting-entity>
      <severity>major</severity>
    </event>
  </notification>
</data>
</logged-notification>

results matching ""

    No results matching ""