我正在使用 ODL 的 yang-tools 从 YANG 模型生成 java 类。 我的项目是一个普通的 JAVA,所以我在 opendaylight 框架之外工作。
从以下 YANG Interfaces 类开始,生成其所有依赖项
module openconfig-interfaces {
namespace "http://openconfig.net/yang/interfaces";
prefix "if";
container interfaces {
list interface {
key "name";
leaf name {
type string;
}
container config {
leaf enabled {
type boolean;
}
}
}
}
}
现在我希望生成的类可以从 XML 或 JSON 中提取,并且该类可以在 JSON 或 XML 中序列化,以便与restconf或netconf一起使用,但我找不到执行此操作的方法。
我已经开始使用这个超级简单的代码了
Path path = Paths.get("src/main/yang");
EffectiveModelContext context = getYangContext(path.toString());
assertTrue(context.findModule(Interfaces.QNAME.getModule()).isPresent());
final var result = new NormalizationResultHolder();
final var streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
InterfacesBuilder interfacesBuilder = new InterfacesBuilder()
.setInterface(Map.of(
new InterfaceKey("GigabitEthernet1"),
new InterfaceBuilder()
.setName("GigabitEthernet1")
.setConfig(new ConfigBuilder()
.setEnabled(true)
.build())
.build()
));
var interfaces = interfacesBuilder.build();
现在我找到了一种将
NormalizedNode
序列化为 XML(不是 json)的方法,但我找不到将生成的类转换为 NormalizedNode
的方法。
我该怎么做? 感谢您的帮助
我们也有同样的问题。 这个问题有更新吗?