Right now, for testcases that needs xml to define domain or storage, etc they call module *utils/xmlbuilder.py utils/xmlgenerator.py* to get back a string of xml. These two module create xml string by "xml.dom.minidom" This approach is hard to maintain and not easy to use. So we will depreciate it in near furture. The new way is to use xml file directly. There will be a new folder named 'xmls' in path repos/*/xmls, testcases will use the xmlfile in the foler directly. For example: domain:define required_params = ('guestname', 'diskpath',) optional_params = {'memory': 1048576, 'vcpu': 1, 'hddriver' : 'virtio', 'nicdriver': 'virtio', 'macaddr': '52:54:00:97:e4:28', 'uuid' : '05867c1a-afeb-300e-e55e-2673391ae080', 'username': None, 'password': None, 'guesttype': 'kvm', 'xml': 'xmls/kvm_guest_define.xml' } The define.py will get the xml string of "xmls/kvm_guest_define.xml" and define it directly. The framework takes the charge of getting the content of the file, replacing some TEXT in it and passing the string to define.py for use. The define.py supports any file in absolute path if the xml option is given in testcase file like domain:eventhandler guestname fedoraVM diskpath /var/lib/libvirt/images/fedoraVM xml /PATH/TO/FILE -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list