这个 yang 通知如何有效?

how is this yang notification valid?

yang 1.1 规范有这个例子, 以下示例在数据节点中定义通知:

 module example-interface-module {
   yang-version 1.1;
   namespace "urn:example:interface-module";
   prefix "if";

   container interfaces {
     list interface {
       key "name";
       leaf name {
         type string;
       }
       notification interface-enabled {
         leaf by-user {
           type string;
         }
       }
     }
   }
 }

一个对应的XML完整通知的实例示例:

 <notification
   xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
   <eventTime>2008-07-08T00:01:00Z</eventTime>
   <interfaces xmlns="urn:example:interface-module">
     <interface>
       <name>eth1</name>
       <interface-enabled>
         <by-user>fred</by-user>
       </interface-enabled>
     </interface>
   </interfaces>
 </notification>

我的问题是,当我从服务器发出通知时,我认为通知内容是这样的:

<notification
   xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
   <eventTime>2008-07-08T00:01:00Z</eventTime>
   <interface-enabled xmlns="urn:example:interface-module">
      <by-user>fred</by-user>
   </interface-enabled>
 </notification>

但是,如果不识别与通知相关的数据节点,这样的通知将毫无用处。

我想我的问题是,规范中的 rule/text 告诉我如何正确形成有效载荷

https://www.rfc-editor.org/rfc/rfc7950#section-7.16.2

When a notification node is defined as a child to a data node, the element defined in [RFC5277] contains a hierarchy of nodes that identifies the node in the datastore. It MUST contain all containers and list nodes from the top level down to the list or container containing the notification.

通知负载必须包括所有祖先 container/lists 直至模块根。只有这样,才能始终确定通知所指的确切节点。