2

我正在尝试找到一种更好的方法来生成 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>

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

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

4

2 回答 2

1

巴拉,

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

希望这可以帮助。

于 2012-04-04T12:56:49.230 回答
0

我会说这一切都取决于你的背景。如果您的应用程序只支持这个特定的模型和这个特定的 rpc ,那么对于这样一个小用例使用任何更复杂的、与模型无关的 API 可能是一种矫枉过正的做法。

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

于 2015-12-31T13:15:20.280 回答