Ограничение проверки увеличения индекса в модели Янга
Я работаю над моделью ян. В этом мне нужно иметь список, в котором один листовой ключ (индекс) должен быть всегда в порядке возрастания. Мне нужно добавить ограничение для этого в модели Ян. какое-нибудь решение для этого?
1 ответ
Вы можете добавить must
ограничение, которое обеспечивает это.
module increasing-index {
namespace "org:example:increasing-index";
prefix "oeii";
list item {
must "not(preceding-sibling::item) or preceding-sibling::item/index < index" {
error-message "Items must be ordered by index value in increasing order.";
}
key index;
leaf index {
type uint32;
}
}
}
Состояние not(preceding-sibling::item) or preceding-sibling::item/index < index
Выше означает следующее: либо нет предыдущих элементов, либо нет предыдущих элементов, у которых значение индекса меньше значения индекса текущего элемента. Условие должно быть выполнено для каждого элемента в списке.
<?xml version="1.0" encoding="utf-8"?>
<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<oeii:item xmlns:oeii="org:example:increasing-index">
<oeii:index>12</oeii:index>
</oeii:item>
<oeii:item xmlns:oeii="org:example:increasing-index">
<oeii:index>13</oeii:index>
</oeii:item>
<oeii:item xmlns:oeii="org:example:increasing-index">
<oeii:index>10</oeii:index>
</oeii:item>
</config>
Error at (9:3): failed assert at "/nc:config/oeii:item": Items must be ordered by index value in increasing order.
Примечание: если список ordered-by system
(по умолчанию), устройство, которое реализует модель, может упорядочивать записи списка любым удобным для него способом - даже без такого ограничения оно может упорядочивать путем увеличения значений индекса, поэтому, возможно, такое ограничение является избыточным семантическим сахаром.