Play stream zip file on the Fly

Hi, I’am newbie to play framework and I want to stream on the fly a zip file that contain image and xml files , the content of xml files is from an enumerator of Elem, I found examples but all of them do not feet my needs, Here is my code:

val xmlContent: Enumerator[Elem] = ..
val streamContent: Enumerator[Array[Byte]] = Enumerator.outputStream { os =>
           val zip = new ZipOutputStream(os)
           zip.putNextEntry(new ZipEntry("report.xml"))
           xmlContent.map{node=> zip.write(node.mkString.getBytes)}
            zip.closeEntry()
            zip.close()
        }
Ok.chunked(streamContent >>> Enumerator.eof).as("application/zip").withHeaders(
          CONTENT_DISPOSITION -> "attachment;")

any idea on how to do that or should I use akka stream instead of that?