# create the basic XML structure response = minidom.Document() prop = response.createElement('prop') prop.setAttribute('xmlns', DAV_NS) response.appendChild(prop) lockdiscovery = response.createElement('lockdiscovery') prop.appendChild(lockdiscovery) activelock = response.createElement('activelock') lockdiscovery.appendChild(activelock) # just spit back whatever is requested for node in request.documentElement.childNodes: imported = response.importNode(node, True) activelock.appendChild(imported) # give an arbitrary (time.time()) locktoken locktoken = response.createElement('locktoken') lockdiscovery.appendChild(locktoken) href = response.createElement('href') locktoken.appendChild(href) locktoken_textnode = response.createTextNode(locktoken_id) href.appendChild(locktoken_textnode)