У меня есть следующая модель ЯНГ. Я хочу проверить модель по пользовательским XML-данным.
module turing-machine {
namespace "http://example.net/turing-machine";
prefix "tm";
description
"Data model for the Turing Machine.";
revision 2013-12-27 {
description
"Initial revision.";
}
/* State data and Configuration */
container turing-machine {
list router {
config false;
leaf name {
type string;
}
leaf interface {
type string;
}
}
}
}
XML-файл, который я хочу проверить:
<?xml version="1.0" encoding="utf-8"?>
<!-- file: turing-machine-config.xml -->
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<turing-machine xmlns="http://example.net/turing-machine">
<router>
<name>A</name>
</router>
<router>
<interface>B</interface>
</router>
</turing-machine>
</config>
Проверка выполняется с помощью следующих команд:
yang2dsdl -t config model.yang
trang -I rng -O rnc model-config.rng model-config.rnc
yang2dsdl -s -j -b model -t config -v data.xml
В результате проверки:
Element `router` not allowed anywhere, expected element end-tag.
Обратите внимание, что, поскольку дочерние элементы не являются общими внутри маршрутизатора, и поэтому я не могу использовать «config true», потому что не могу выбрать ключ, я думаю,что обходной путь должен использовать конфигурацию false.