YANG XPath functions - unit tests and bugfix
[yangtools.git] / yang / yang-data-jaxen / src / test / resources / yang-xpath-functions-test / deref-function-leafref / foo.yang
1 module foo {
2     namespace foo-ns;
3     prefix foo-prefix;
4     yang-version 1.1;
5
6     revision 2017-04-03;
7
8     container my-container {
9         list my-list {
10             key "key-leaf-a key-leaf-b";
11
12             leaf key-leaf-a {
13                 type string;
14             }
15
16             leaf key-leaf-b {
17                 type string;
18             }
19
20             leaf referenced-leaf {
21                 type string;
22             }
23
24             leaf referenced-leaf-list {
25                 type string;
26             }
27         }
28
29         container my-inner-container {
30             leaf abs-leafref-leaf {
31                 type leafref {
32                     path "/my-container/my-list[key-leaf-a=current()/../ordinary-leaf-a]" +
33                         "[key-leaf-b=current()/../ordinary-leaf-b]/referenced-leaf";
34                 }
35             }
36
37             leaf rel-leafref-leaf {
38                 type leafref {
39                     path "../../foo-prefix:my-list[foo-prefix:key-leaf-a=current()/../ordinary-leaf-a]" +
40                         "[key-leaf-b=current()/../ordinary-leaf-b]/foo-prefix:referenced-leaf";
41                 }
42             }
43
44             leaf leaf-list-leafref-leaf {
45                 type leafref {
46                     path "/my-container/my-list[key-leaf-a=current()/../ordinary-leaf-a]" +
47                         "[key-leaf-b=current()/../ordinary-leaf-b]/referenced-leaf-list";
48                 }
49             }
50
51             leaf ordinary-leaf-a {
52                 type string;
53             }
54
55             leaf ordinary-leaf-b {
56                 type string;
57             }
58         }
59     }
60 }