Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数据模型生成XML RPC NETCONF请求的标准方法是什么_Java_Xml Rpc_Network Protocols_Ietf Netmod Yang_Ietf Netconf - Fatal编程技术网

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

Java 从数据模型生成XML RPC NETCONF请求的标准方法是什么,java,xml-rpc,network-protocols,ietf-netmod-yang,ietf-netconf,Java,Xml Rpc,Network Protocols,Ietf Netmod Yang,Ietf Netconf,我试图找到一种更好的方法来生成XML RPC请求,并将其发送到包含NETCONF标记的设备 我们知道请求应该是什么样子,所以我正在做的是,用占位符对XML-RPC请求XML进行硬编码。这些占位符可以稍后用实际输入替换 例如: @设备mac 在本例中,@device_mac将在发送请求时被替换。但是我感觉我正在硬编码请求XML。有没有更好的方法生成请求XML Netconf数据将使用阳/阴文件建模。有没有办法利用这些文件至少生成NETCONF请求部分?Bala 我想说有两种方法可以做到这一点:

我试图找到一种更好的方法来生成XML RPC请求,并将其发送到包含NETCONF标记的设备

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

例如:


@设备mac
在本例中,@device_mac将在发送请求时被替换。但是我感觉我正在硬编码请求XML。有没有更好的方法生成请求XML

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

Bala

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


希望这能有所帮助。

我想说这一切都取决于你的背景。如果您的应用程序打算只支持这个特定的模型和这个特定的rpc,那么在这样一个小的用例中使用任何更复杂的、独立于模型的API可能会有点过头


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

我也建议使用pyang DSDL插件创建RELAXNG模式,然后生成rpc不知怎的,它发出了信息。这种模式将用于验证现有NETCONF内容,但从中生成内容可能需要一些努力来实现。我知道我很难找到可以帮助我在Java中使用RNG的工具。映射在RFC6110中定义。。
<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>