module Test {
    yang-version 1;
    namespace http://huawei.com;
    prefix Ant;
    container food {
       choice snack {
           case sports-arena {
               leaf pretzel {
                   type string;
               }
               leaf beer {
                   type string;
               }
           }
           case late-night {
               leaf chocolate {
                   type string;
               }
           }
       }
       container dinner {
           leaf cheese {
               type string;
           }
       }
       choice snack2 {
                  case sports-arena {
                      leaf pretzel {
                          type string;
                      }
                      leaf beer {
                          type string;
                      }
                  }
                  case late-night {
                      leaf chocolate {
                          type string;
                      }
                  }
              }
    }
}
