def xmlizeFiles(self, directory, fileType):
        # stat table contains triples of (time, file, stat)
        statTable = []
        fields = self.request().fields()
        for f in findSysFiles(directory):
            s = os.stat(os.path.join(basicPathName, directory, f))
            md5sum = self.readMd5Sum(directory, f)
            statTable.append((s[stat.ST_MTIME], f, s, md5sum))
        # sort first by reverse time, then by name
        statTable.sort(lambda a,b: cmp(b[0], a[0]) or FormUtils.alphanumericCompare(a[1], b[1]))

        result = self.doc.createElement(directory)
        for sysMtime, eachFile, fileStat, md5Sum in statTable:
            sysBytes = fileStat[stat.ST_SIZE]
            sysTimeStr = time.strftime('%Y/%m/%d %H:%M',
                                       time.localtime(sysMtime))
            fileEl = self.doc.createElement('file')
            fileEl.setAttribute('name', eachFile)
            fileEl.setAttribute(
                'href', '/mgmt/download?f=%s&type=%s' % (eachFile, fileType))
            # bytes are for column sorting
            fileEl.setAttribute('bytes', '%d' % sysBytes)
            fileEl.setAttribute('sizeStr', GraphUtils.scale(
                sysBytes, GraphUtils.SCALER_HUNDREDS_OF_BYTES))
            # timestamp is for column sorting
            fileEl.setAttribute('timestamp', '%d' % sysMtime)
            fileEl.setAttribute('timestring', sysTimeStr)
            fileEl.setAttribute('md5sum', '%s' % md5Sum)
            result.appendChild(fileEl)
        self.doc.documentElement.appendChild(result)
        self.writeXmlDoc()