module sample {
    yang-version 1;
    namespace "samplenamespace";
    prefix "attr";
    container top {
        leaf mtu {
           type string;
        }
        leaf-list color {
           type string;
        }
        list interface {
            key name;
            leaf name {
                type string;
            }
            container address {
                leaf name {
                    type string;
                }
            }
        }
    }
    list l1 {
        config false;
        container c1 {
            leaf leaf1 {
               type string;
            }
            leaf-list leaf2 {
               type string;
            }
        }
        leaf leaf3 {
            type string;
        }
        leaf-list leaf4 {
            type string;
        }
    }
    list l2 {
        key k1;
        leaf k1 {
            type string;
        }
    }
    leaf leaf5 {
        type string;
    }
    leaf-list leaf6 {
        type string;
    }
}