5.1.1. 导入并包含修订
发布的模块随着时间的推移而独立发展为了实现这一发展,可以使用特定的修订版导入模块。最初,模块在写入模块时导入当前其他模块的修订版。随着未来版本导入模块的发布,导入模块不受影响,其内容不变。当模块的作者准备移动到最近发布的导入模块的修订版时,模块将被重新发布,并带有更新的“import
”语句。通过重新发布新版本,作者明确表示接受导入模块的任何更改。
对于子模块,这个问题是相关的,但更简单。包含子模块的模块或子模块可以指定包含的子模块的修订版本。如果某个子模块发生更改,则需要更新包含该子模块的任何模块或子模块以引用新的修订版本。
例如,模块“b”导入模块a。
module a {
yang-version 1.1;
namespace "urn:example:a";
prefix "a";
revision 2008-01-01 { ... }
grouping a {
leaf eh { .... }
}
}
module b {
yang-version 1.1;
namespace "urn:example:b";
prefix "b";
import a {
prefix "p";
revision-date 2008-01-01;
}
container bee {
uses p:a;
}
}
当“a”的作者发布一个新的修订版本时,对于“b”的作者来说,这些变化可能是不可接受的。如果新的修订是可以接受的,那么“b”的作者可以在“import
”语句中重新发布修订版本。
如果一个模块没有通过特定的修订导入,则未定义使用哪个修订。