def applyTemplate(templateFile, params={}):
template = open(os.path.join('templates', templateFile))
result = template.read() % params
template.close()
return result
print 'Content-type: text/xml'
print
try:
# validate
events, rawdata = rssvalid.validate(sys.stdin)
# format as xml
from rssvalid.formatter.text_xml import Formatter
output = Formatter((events, rawdata))
# output
print applyTemplate('soap.tmpl', {'body':"\n".join(output)})
except:
import traceback
tb = ''.join(apply(traceback.format_exception, sys.exc_info()))
from rssvalid.formatter.text_xml import xmlEncode
print applyTemplate('fault.tmpl', {'code':sys.exc_info()[0],
'string':sys.exc_info()[1], 'traceback':xmlEncode(tb)})