function start()
 {
     $this->__buildHeader();
     $attribs = array("obj_id" => "il_" . IL_INST_ID . "_file_" . $this->file->getId(), "version" => $this->file->getVersion(), "size" => $this->file->getFileSize(), "type" => $this->file->getFileType());
     $this->xmlStartTag("File", $attribs);
     $this->xmlElement("Filename", null, $this->file->getFileName());
     $this->xmlElement("Title", null, $this->file->getTitle());
     $this->xmlElement("Description", null, $this->file->getDescription());
     $this->xmlElement("Rating", null, (int) $this->file->hasRating());
     if ($this->attachFileContents) {
         $filename = $this->file->getDirectory($this->file->getVersion()) . "/" . $this->file->getFileName();
         if (@is_file($filename)) {
             if ($this->attachFileContents == ilFileXMLWriter::$CONTENT_ATTACH_COPY) {
                 $attribs = array("mode" => "COPY");
                 copy($filename, $this->target_dir_absolute . "/" . $this->file->getFileName());
                 $content = $this->target_dir_relative . "/" . $this->file->getFileName();
                 $this->xmlElement("Content", $attribs, $content);
             } elseif ($this->attachFileContents == ilFileXMLWriter::$CONTENT_ATTACH_REST) {
                 $attribs = array('mode' => "REST");
                 include_once './Services/WebServices/Rest/classes/class.ilRestFileStorage.php';
                 $fs = new ilRestFileStorage();
                 $tmpname = $fs->storeFileForRest(base64_encode(@file_get_contents($filename)));
                 $this->xmlElement("Content", $attribs, $tmpname);
             } else {
                 $content = @file_get_contents($filename);
                 $attribs = array("mode" => "PLAIN");
                 if ($this->attachFileContents == ilFileXMLWriter::$CONTENT_ATTACH_ZLIB_ENCODED) {
                     $attribs["mode"] = "ZLIB";
                     $content = @gzcompress($content, 9);
                 } elseif ($this->attachFileContents == ilFileXMLWriter::$CONTENT_ATTACH_GZIP_ENCODED) {
                     $attribs["mode"] = "GZIP";
                     $content = @gzencode($content, 9);
                 }
                 $content = base64_encode($content);
                 $this->xmlElement("Content", $attribs, $content);
             }
         }
     }
     include_once "./Services/History/classes/class.ilHistory.php";
     $versions = ilHistory::_getEntriesForObject($this->file->getId(), $this->file->getType());
     if (count($versions)) {
         $this->xmlStartTag("Versions");
         foreach ($versions as $version) {
             $info_params = $version["info_params"];
             list($filename, $history_id) = split(",", $info_params);
             $attribs = array("id" => $history_id, "date" => ilUtil::date_mysql2time($version["date"]), "usr_id" => "il_" . IL_INST_ID . "_usr_" . $version["user_id"]);
             $this->xmlElement("Version", $attribs);
         }
         $this->xmlEndTag("Versions");
     }
     $this->xmlEndTag("File");
     $this->__buildFooter();
     return true;
 }