从YANG数据模型生成XML RPC NETCONF请求的标准方法是什么

时间:2012-04-03 11:40:18

标签: java xml-rpc network-protocols ietf-netmod-yang ietf-netconf

我正在尝试找到一种更好的方法来生成XML RPC请求,以便将其发送到包含NETCONF标记的设备。

我们知道请求应该是什么样子,所以我正在做的是,只需在其中使用占位符对XML-RPC请求XML进行硬编码。这些占位符可以在以后用实际输入替换。

例如:

<rpc message-id="">
  <get-config>
    <source>
      <running/>
    </source>
    <filter type="subtree" base_path="">
      <wing-stats>
        <device>
          <lldp>
            <dev_id/>
            <local_port/>
            <neighborId/>
            <Neighbor_port_id/>
          </lldp>
          <mac>@device_mac</mac>
        </device>
      </wing-stats>
    </filter>
  </get-config>
</rpc>

在此示例中,@ send_mac将在发送请求时被替换。但有些我觉得我正在硬编码请求XML。有没有更好的方法来生成请求XML?

Netconf数据将使用YANG / YIN文件建模。有没有办法可以利用这些文件来生成至少的NETCONF请求部分?

2 个答案:

答案 0 :(得分:1)

巴拉,

我想说有两种方法可以做到这一点:你可以使用任何可用的日期模型驱动工具包,我知道其中至少有一个生成面向模型的API并隐藏详细的XML(DOM操纵。第二个方向是使用由RFC 6110工具实现的pyang中定义的YANG到DSDL映射。现在,后者要求您的工具可以与DSDL一起使用,Relax NG基本上是Schematron和{{3}}的组合。

希望这有帮助。

答案 1 :(得分:0)

我会说这一切都取决于你的背景。如果你的应用程序意味着支持这个特定的模型和这个特定的rpc 那么在这么小的用例中使用任何更复杂的,与模型无关的API可能是一种过度的弊端。

另一方面,如果您的应用程序必须支持许多模型和rpcs,或者即使它需要支持在运行时添加的新模型,那么您肯定应该探索可应用于任何模型的解决方案,例如Carl提到的那些模型。