1

我有一个 Yang 文件,我想使用 yang 模式以 xml 格式发送数据,我该怎么做。

假设我有 yang 文件,如下所示

module jtest {
    namespace "jtest";
    prefix jtest;

    container jtest {
        container mycontainer1 {
            leaf myleaf1 {
                type string;
            }
        }

        container mycontainer2 {
            container innercontainer {
                leaf myleaf2 {
                    type string;
                }
            }
            leaf myleaf3 {
                type string;
            }
        }
        container mycontainer3 {
            leaf myleaf1 {
                type string;
            }
        }

    }
}

我想根据 yang 模式以 xml 格式发送数据,如何将 yang 序列化或转换为 xml。

4

2 回答 2

1

假设(根据@predi 评论)您可能在询问如何创建符合 YANG 模式的 XML 实例:

我不确定您是指以编程方式(通过代码)还是作为最终用户,以及是否使用 OpenDaylight (ODL),但以防万一,ODL 中的 DAEXIM 项目将 YANG 从 ODL 数据存储区导入到来自 JSON,所以您可能对此感兴趣?如果您是最终用户,那么数据导出/导入用户指南可能对您有用。如果您是开发人员,请查看ExportTask类以了解它如何编写 JSON - 然后您应该能够使用 ODL yangtools 的XmlCodecFactory,类似于 DAEXIM 如何使用 JSONCodecFactory 编写 XML 而不是 JSON。

如果您想将 YANG 模式本身转换为 XML,这就是 YIN 的用途(但我认为这不是您要问的)。

于 2018-08-24T12:47:32.363 回答
0

您可以使用pyangyang 文件生成 xml 文件:

$ pyang -h
Usage: pyang [options] [<filename>...]
 
  -f FORMAT, --format=FORMAT
                        Convert to FORMAT.  Supported formats are: yang, yin,
                        dsdl, capability, depend, jsonxsl, jstree, jtox, name,
                        omni, sample-xml-skeleton, tree, uml
 
  Sample-xml-skeleton output specific options:
    --sample-xml-skeleton-doctype=DOCTYPE
                        Type of sample XML document (data or config).
    --sample-xml-skeleton-defaults
                        Insert leafs with defaults values.
    --sample-xml-skeleton-annotations
                        Add annotations as XML comments.
    --sample-xml-skeleton-path=SAMPLE_PATH
                        Subtree to print

像这样:

pyang -f sample-xml-skeleton --sample-xml-skeleton-defaults -o output.xml input.yang
于 2021-02-19T02:52:29.753 回答