имя листа и имя типа могут быть одинаковыми в ян

Нижеприведенный пример является правильным утверждением Ян или нет? это действительно для pyang, но JNC не может обработать

grouping TLId {
leaf age {
type Age;
mandatory true;
}
}

typedef Age {
type string {
pattern '[0-9][0-9]';
}
}

Пожалуйста, предложите


person Techie    schedule 25.06.2020    source источник
comment
Как уже упоминалось @predi, это верное утверждение. Скорее всего, это ошибка/ограничение JNC.   -  person Paulo Gomes    schedule 30.06.2020


Ответы (1)


Ваш фрагмент YANG действителен.

Определения типов назначаются другому пространству имен по сравнению с идентификаторами узлов схемы — никогда не может быть конфликта имен между идентификатором листа и идентификатором определения типа, как описано в Раздел 6.2.1 RFC7950:

Каждый идентификатор допустим в пространстве имен, которое зависит от типа определяемого элемента YANG. Все идентификаторы, определенные в пространстве имен, ДОЛЖНЫ быть уникальными.

o Все имена производных типов, определенные в родительском узле или на верхнем уровне модуля или его подмодулей, совместно используют одно и то же пространство имен идентификатора типа. Это пространство имен ограничено всеми дочерними узлами родительского узла или модуля. Это означает, что любой узел-потомок может использовать это определение типа, и он НЕ ДОЛЖЕН определять определение типа с тем же именем.

o Все листы, листовые списки, списки, контейнеры, варианты выбора, rpcs, действия, уведомления, любые данные и любые XML-файлы, определенные (непосредственно или с помощью оператора использования) в родительском узле или на верхнем уровне модуля или его подмодулей, совместно используют такое же пространство имен идентификаторов. Это пространство имен ограничивается родительским узлом или модулем, если только родительский узел не является узлом дела. В этом случае пространство имен ограничивается ближайшим узлом-предком, который не является узлом выбора или выбора.

person predi    schedule 29.06.2020