Ограничение проверки увеличения индекса в модели Янга - PullRequest
0 голосов
/ 23 мая 2018

Я работаю над моделью Янга.В этом мне нужно иметь список, в котором один ключ листа (индекс) должен быть всегда в порядке возрастания.Мне нужно добавить ограничение для этого в модели Ян.какое-нибудь решение для этого?

1 Ответ

0 голосов
/ 23 мая 2018

Вы можете добавить ограничение 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 (по умолчанию), устройство, которое реализует модель, может упорядочить записи списка вкак угодно - даже без такого ограничения его можно упорядочить путем увеличения значений индекса, поэтому, возможно, такое ограничение является избыточным семантическим сахаром.

...