我一直试图找到可以从 java 中的yang模型生成样本xml / json数据的东西,例如对于xsd,有一些工具可以生成Sample xml。
我试过Pyang: 1.它在Python中。 转换后,它给出了yin格式,它与xang规格相当。 对于Eg。如果我使用pyang将其转换为YIN,请使用yang代码:
leaf templateSendPeriod {
when "../exportProtocol!='netflow-v5'";
type uint16;
default 60;
units seconds;
}
这就是我得到的 -
<leaf name="templateSendPeriod">
<when condition="../exportProtocol!='netflow-v5'"/>
<type name="uint16"/>
<default value="60"/>
<units name="seconds"/>
</leaf>
而是我想要的是
<templateSendPeriod></templateSendPeriod>
这样我就可以获得xml,输入详细信息并验证相同的yang。
答案 0 :(得分:1)
您可以这样做, 首先声明您的模型
run "#{try_sudo} chmod 755 -R #{current_path}"
对模型进行树表示
map.get(-2)
稍后在您的python代码中使用此代码:
if(place < 3){return "whatever you want when place is less than 3";}
在这里,您可以根据自己的选择获取json或xml的答案。
// module name
module napalm-star-wars {
// boilerplate
yang-version "1";
namespace "https://napalm-yang.readthedocs.io/napalm-star-wars";
prefix "napalm-star-wars";
// identity to unequivocally identify the faction an individual belongs to
identity AFFILIATION {
description "To which group someone belongs to";
}
identity EMPIRE {
base AFFILIATION;
description "Affiliated to the empire";
}
identity REBEL_ALLIANCE {
base AFFILIATION;
description "Affiliated to the rebel alliance";
}
// new type to enforce correctness of the data
typedef age {
type uint16 {
range 1..2000;
}
}
// this grouping will all the personal data we will assign to individuals
grouping personal-data {
leaf name {
type string;
}
leaf age {
type age;
}
leaf affiliation {
type identityref {
base napalm-star-wars:AFFILIATION;
}
}
}
// this is the root object defined by the model
container universe {
list individual {
// identify each individual by using the name as key
key "name";
// each individual will have the elements defined in the grouping
uses personal-data;
}
}
}