module Test {
    yang-version 1;
    namespace http://huawei.com;
    prefix Ant;
    container valid {
    	grouping endpoint {
             leaf zip-code {
                 type string;
             }
             uses failure;
	     container hold {
                 leaf newone {
                     type string;
                 }
                 
             }
             uses failure;              
    	}
        grouping failure {
            leaf test {
                type string;
            }
        }
    }
}
