package output;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class XslStyleSheets {
public static void PdfBoxSummaryCustomizedXsl(String xsltLocation) throws IOException {
PrintWriter xslStyle = new PrintWriter(new FileWriter(xsltLocation));
xslStyle.println("<?xml version=\"1.0\"?>");
xslStyle.println("<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">");
xslStyle.println("<xsl:template match=\"/\">");
xslStyle.println("<html>");
xslStyle.println("<head>");
xslStyle.println("<style>");
xslStyle.println("tr.captiondred {background-color: #FF0000}");
xslStyle.println("tr.captionred {background-color: #CD5C5C}");
xslStyle.println("tr.captiongreen {background-color: #006400}");
xslStyle.println("tr.captiontan {background-color: #FFDEAD}");
xslStyle.println("tr.captionkhaki {background-color: #BDB76B}");
xslStyle.println("tr.captionolive {background-color: #808000}");
xslStyle.println("tr.captionwheat {background-color: #F5DEB3}");
xslStyle.println("</style>");
xslStyle.println("</head>");
xslStyle.println("<body>");
xslStyle.println("<h2>PDF/A Validation with PDFBox Short Summary</h2>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captiontan\">");
xslStyle.println("<th>FileName</th>");
xslStyle.println("<th>Creation Year</th>");
xslStyle.println("<th>Creation Software</th>");
xslStyle.println("<th>Status</th>");
xslStyle.println("<th>ErrorsCount</th>");
xslStyle.println("</tr>");
xslStyle.println("<xsl:for-each select=\"PdfBoxValidationSummary/PdfAFile\">");
xslStyle.println("<xsl:sort select=\"Status\" />");
xslStyle.println("<xsl:if test=\"Status[contains(text(),'Valid')]\">");
xslStyle.println("<tr class=\"captiongreen\">");
xslStyle.println("<td><i><xsl:value-of select=\"FileName\"/></i></td>");
xslStyle.println("<td><xsl:value-of select=\"CreationYear\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"CreationSoftware\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"Status\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"ErrorsCount\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:if> ");
xslStyle.println("<xsl:if test=\"Status[contains(text(),'Invalid')]\">");
xslStyle.println("<tr class=\"captionred\">");
xslStyle.println("<td><i><xsl:value-of select=\"FileName\"/></i></td>");
xslStyle.println("<td><xsl:value-of select=\"CreationYear\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"CreationSoftware\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"Status\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"ErrorsCount\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:if> ");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</table>");
xslStyle.println("<h2>Examined PDF/A Files</h2>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captiontan\">");
xslStyle.println("<th>Examined PDF/A</th>");
xslStyle.println("<th>Valid</th>");
xslStyle.println("<th>Invalid</th>");
xslStyle.println("</tr>");
xslStyle.println("<xsl:for-each select=\"PdfBoxValidationSummary/Summary\">");
xslStyle.println("<tr class=\"captiontan\">");
xslStyle.println("<td><xsl:value-of select=\"ExaminedPdfAFiles\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"ValidPdfAFiles\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"InvalidPdfAFiles\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</table>");
xslStyle.println("</body>");
xslStyle.println("</html>");
xslStyle.println("</xsl:template>");
xslStyle.println("</xsl:stylesheet>");
xslStyle.close();
}
public static void PdfBoxCustomizedXsl(String xsltLocation) throws IOException {
PrintWriter xslStyle = new PrintWriter(new FileWriter(xsltLocation));
xslStyle.println("<?xml version=\"1.0\"?>");
xslStyle.println("<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">");
xslStyle.println("<xsl:template match=\"/\">");
xslStyle.println("<html>");
xslStyle.println("<head>");
xslStyle.println("<style>");
xslStyle.println("tr.captiondred {background-color: #FF0000}");
xslStyle.println("tr.captionred {background-color: #CD5C5C}");
xslStyle.println("tr.captiongreen {background-color: #006400}");
xslStyle.println("tr.captiontan {background-color: #FFDEAD}");
xslStyle.println("tr.captionkhaki {background-color: #BDB76B}");
xslStyle.println("tr.captionolive {background-color: #808000}");
xslStyle.println("tr.captionwheat {background-color: #F5DEB3}");
xslStyle.println("</style>");
xslStyle.println("</head>");
xslStyle.println("<body>");
xslStyle.println("<h2>Overview on invalid PDF/A Files</h2>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captiontan\">");
xslStyle.println("<th>FileName</th>");
xslStyle.println("<th>Creation Year</th>");
xslStyle.println("<th>Creation Software</th>");
xslStyle.println("<th>Syntax Errors</th>");
xslStyle.println("<th>Graphic Errors</th>");
xslStyle.println("<th>Font Errors</th>");
xslStyle.println("<th>Transparency Errors</th>");
xslStyle.println("<th>Annotation Errors</th>");
xslStyle.println("<th>Action Errors</th>");
xslStyle.println("<th>Metadata Errors</th>");
xslStyle.println("</tr>");
xslStyle.println("<xsl:for-each select=\"PdfBoxValidation/PdfAFile\">");
xslStyle.println("<tr class=\"captionred\">");
xslStyle.println("<td><i><xsl:value-of select=\"FileName\"/></i></td>");
xslStyle.println("<td><xsl:value-of select=\"CreationYear\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"CreationSoftware\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"SyntaxErrors\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"GraphicErrors\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"FontErrors\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"TransparencyErrors\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"AnnotationErrors\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"ActionErrors\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"MetadataErrors\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</table>");
xslStyle.println("</body>");
xslStyle.println("</html>");
xslStyle.println("</xsl:template>");
xslStyle.println("</xsl:stylesheet>");
xslStyle.close();
}
public static void TextSucheCustomizedXsl(String xsltLocation) throws IOException {
PrintWriter xslStyle = new PrintWriter(new FileWriter(xsltLocation));
xslStyle.println("<?xml version=\"1.0\"?>");
xslStyle.println("<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">");
xslStyle.println("<xsl:template match=\"/\">");
xslStyle.println("<html>");
xslStyle.println("<head>");
xslStyle.println("<style>");
xslStyle.println("tr.captiondred {background-color: #FF0000}");
xslStyle.println("tr.captionred {background-color: #CD5C5C}");
xslStyle.println("tr.captiongreen {background-color: #006400}");
xslStyle.println("tr.captiontan {background-color: #FFDEAD}");
xslStyle.println("tr.captionkhaki {background-color: #BDB76B}");
xslStyle.println("tr.captionolive {background-color: #808000}");
xslStyle.println("tr.captionwheat {background-color: #F5DEB3}");
xslStyle.println("</style>");
xslStyle.println("</head>");
xslStyle.println("<body>");
xslStyle.println("<h2>Textsuche</h2>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captiontan\">");
xslStyle.println("<th>Durchsuchter Ordner oder Datei</th>");
xslStyle.println("<th>Art der Suche</th>");
xslStyle.println("<th>Anzahl Dateien im Suchordner</th>");
xslStyle.println("<th>Gesuchter Text</th>");
xslStyle.println("<th>Text in durchsuchtem Ordner/Datei gefunden</th>");
xslStyle.println("</tr>");
xslStyle.println("<xsl:for-each select=\"Textsuche\">");
xslStyle.println("<tr class=\"captiontan\">");
xslStyle.println("<td><xsl:value-of select=\"Durchsucht\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"Art\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"AnzahlDateien\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"GesuchterText\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"OccuranceSearchedTest\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</table>");
xslStyle.println("<h2>Durchsuchte Dateien</h2>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captiontan\">");
xslStyle.println("<th>Dateiname</th>");
xslStyle.println("<th>Gesuchten Text gefunden</th>");
xslStyle.println("</tr>");
xslStyle.println("<xsl:for-each select=\"Textsuche/Datei\">");
xslStyle.println("<tr class=\"captiontan\">");
xslStyle.println("<td><xsl:value-of select=\"Dateiname\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"Suchergebnis\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</table>");
xslStyle.println("</body>");
xslStyle.println("</html>");
xslStyle.println("</xsl:template>");
xslStyle.println("</xsl:stylesheet>");
xslStyle.close();
}
public static void TiffTagAnalysisCustomizedXsl() throws IOException {
PrintWriter xslStyle = new PrintWriter(new FileWriter(filetools.tiff.TiffFileAnalysis.examinedFolder + "//" + "TiffTagStyle.xsl"));
xslStyle.println("<?xml version=\"1.0\"?>");
xslStyle.println("<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">");
xslStyle.println("<xsl:template match=\"/\">");
xslStyle.println("<html>");
xslStyle.println("<head>");
xslStyle.println("<style>");
xslStyle.println("tr.captiondred {background-color: #FF0000}");
xslStyle.println("tr.captionred {background-color: #CD5C5C}");
xslStyle.println("tr.captiongreen {background-color: #006400}");
xslStyle.println("tr.captiontan {background-color: #FFDEAD}");
xslStyle.println("tr.captionkhaki {background-color: #BDB76B}");
xslStyle.println("tr.captionolive {background-color: #808000}");
xslStyle.println("tr.captionwheat {background-color: #F5DEB3}");
xslStyle.println("</style>");
xslStyle.println("</head>");
xslStyle.println("<body>");
xslStyle.println("<h2>Examination of Tiff Tags</h2>");
xslStyle.println("<h3>Summary of Tiff Tags</h3>");
xslStyle.println("<xsl:value-of select=\"DifferentTiffTagsInSample\"/>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captiontan\">");
xslStyle.println("<th> TiffTag</th>");
xslStyle.println("<th> Occurance</th>");
xslStyle.println("<th> Description</th>");
xslStyle.println("<th> SourceOfTag</th>");
xslStyle.println("</tr>");
xslStyle.println("<xsl:for-each select=\"TiffTagAnalysis/AnalysisSummary/DifferentTiffTags\">");
xslStyle.println("<xsl:sort select=\"SourceOfTag\" />");
// TODO: sorts in alphabetic order
xslStyle.println("<tr class=\"captiontan\">");
xslStyle.println("<td><xsl:value-of select=\"TiffTag\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"Occurance\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"Description\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"SourceOfTag\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</table>");
xslStyle.println("<h3>Tiff Statistic</h3>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captiondred\">");
xslStyle.println("<th>All Tiffs in Examined Folder</th>");
xslStyle.println("<th>Problematic Tiffs that were not examined</th>");
xslStyle.println("</tr>");
xslStyle.println("<xsl:for-each select=\"TiffTagAnalysis/AnalysisSummary\">");
xslStyle.println("<tr class=\"captiondred\">");
xslStyle.println("<td><xsl:value-of select=\"ExaminedTiffs\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"ProblematicTiffs\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</table>");
xslStyle.println("<h3>Examination Failed for following Tiff Files</h3>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captiondred\">");
xslStyle.println("<th> FilePath</th> ");
xslStyle.println("<th> ErrorMessage</th>");
xslStyle.println("</tr>");
xslStyle.println("<xsl:if test=\"TiffTagAnalysis/TiffFile/ErrorMessage\">");
xslStyle.println("<xsl:for-each select=\"TiffTagAnalysis/TiffFile\">");
xslStyle.println("<tr class=\"captiondred\">");
xslStyle.println("<td><xsl:value-of select=\"FilePath\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"ErrorMessage\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</xsl:if>");
xslStyle.println("</table>");
xslStyle.println("<h3>12 Mandatory Tiff Tags in Baseline Tiff</h3>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captiongreen\">");
xslStyle.println("<th> FileName</th> ");
xslStyle.println(" <!-- <th> SubFileType</th> --> ");
xslStyle.println("<th> ImageWidth</th>");
xslStyle.println("<th> ImageLength</th>");
xslStyle.println("<th> BitsPerSample</th>");
xslStyle.println("<th> Compression</th>");
xslStyle.println("<th> Photometric</th>");
xslStyle.println("<th> StripOffSets</th>");
xslStyle.println("<th> SamplesPerPixel</th>");
xslStyle.println("<th> RowsPerStrip</th>");
xslStyle.println("<th> StripByteCounts</th>");
xslStyle.println("<th> XResolution</th>");
xslStyle.println("<th> YResolution</th>");
xslStyle.println("<th> ResolutionUnit</th>");
xslStyle.println("</tr>");
xslStyle.println("<xsl:for-each select=\"TiffTagAnalysis/TiffFile/TiffTags\">");
xslStyle.println("<tr class=\"captiongreen\">");
xslStyle.println("<td><xsl:value-of select=\"FileName\"/></td>");
xslStyle.println(" <!-- <td><xsl:value-of select=\"SubFileType\"/></td> --> ");
xslStyle.println("<td><xsl:value-of select=\"ImageWidth\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"ImageLength\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"BitsPerSample\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"Compression\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"Photometric\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"StripOffSets\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"SamplesPerPixel\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"RowsPerStrip\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"StripByteCounts\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"XResolution\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"YResolution\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"ResolutionUnit\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</table>");
xslStyle.println("<h3>Nice to have Tiff Tags optional in Baseline Tiff</h3>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captionkhaki\">");
xslStyle.println("<th> FileName</th> ");
xslStyle.println("<th> MinSampleValue</th> ");
xslStyle.println("<th> MaxSampleValue</th> ");
xslStyle.println("<th> GrayResponseUnit</th> ");
xslStyle.println("<th> GrayResponseCurve</th> ");
xslStyle.println("<th> Software</th> ");
xslStyle.println("<th> DateTime</th> ");
xslStyle.println("<th> Artist</th> ");
xslStyle.println("<th> ColorMap</th> ");
xslStyle.println("<th> Copyright</th> ");
xslStyle.println("</tr>");
xslStyle.println("<xsl:for-each select=\"TiffTagAnalysis/TiffFile/TiffTags\">");
xslStyle.println("<tr class=\"captionkhaki\">");
xslStyle.println("<td><xsl:value-of select=\"FileName\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"MinSampleValue\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"MaxSampleValue\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"GrayResponseUnit\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"GrayResponseCurve\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"Software\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"DateTime\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"Artist\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"ColorMap\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"Copyright\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</table>");
xslStyle.println("<h3>No Tags for Baseline Tiff but nice to have for Digital Preservation</h3>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captionwheat\">");
xslStyle.println("<th> FileName</th> ");
xslStyle.println("<th> ExifIfd</th>");
xslStyle.println("<th> ExtraSamples</th>");
xslStyle.println("</tr>");
xslStyle.println("<xsl:for-each select=\"TiffTagAnalysis/TiffFile/TiffTags\">");
xslStyle.println("<tr class=\"captionwheat\">");
xslStyle.println("<td><xsl:value-of select=\"FileName\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"ExifIfd\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"ExtraSamples\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</table>");
xslStyle.println("<h3>Other known Tiff Tags</h3>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captionolive\">");
xslStyle.println("<th> FileName</th> ");
xslStyle.println("<th> T4Option</th>");
xslStyle.println("<th> T6Option</th>");
xslStyle.println("<th> PageNumber</th>");
xslStyle.println("<th> FillOrder</th>");
xslStyle.println("<th> Orientation</th>");
xslStyle.println("<th> PlanarConfiguration</th>");
xslStyle.println("</tr>");
xslStyle.println("<xsl:for-each select=\"TiffTagAnalysis/TiffFile/TiffTags\">");
xslStyle.println("<tr class=\"captionolive\">");
xslStyle.println("<td><xsl:value-of select=\"FileName\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"T4Option\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"T6Option\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"PageNumber\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"FillOrder\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"Orientation\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"PlanarConfiguration\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</table>");
xslStyle.println("</body>");
xslStyle.println("</html>");
xslStyle.println("</xsl:template>");
xslStyle.println("</xsl:stylesheet>");
xslStyle.close();
}
public static void PdfMetadataCustomizedXsl(String xsltLocation) throws IOException {
PrintWriter xslStyle = new PrintWriter(new FileWriter(xsltLocation));
xslStyle.println("<?xml version=\"1.0\"?>");
xslStyle.println("<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">");
xslStyle.println("<xsl:template match=\"/\">");
xslStyle.println("<html>");
xslStyle.println("<head>");
xslStyle.println("<style>");
xslStyle.println("tr.captiondred {background-color: #FF0000}");
xslStyle.println("tr.captionred {background-color: #CD5C5C}");
xslStyle.println("tr.captiongreen {background-color: #006400}");
xslStyle.println("tr.captiontan {background-color: #FFDEAD}");
xslStyle.println("tr.captionkhaki {background-color: #BDB76B}");
xslStyle.println("tr.captionolive {background-color: #808000}");
xslStyle.println("tr.captionwheat {background-color: #F5DEB3}");
xslStyle.println("</style>");
xslStyle.println("</head>");
xslStyle.println("<body>");
xslStyle.println("<h2>Pdf Metadata Extraction</h2>");
xslStyle.println("<table border =\"1\">");
xslStyle.println("<tr class=\"captiontan\">");
xslStyle.println("<th>File Name</th> ");
/* xslStyle.println("<th>No. of Metadata Entries</th> "); */
xslStyle.println("<th>Year of Creation</th> ");
xslStyle.println("<th>Pdf Version</th> ");
/*
* xslStyle.println("<th>Creation Date</th> ");
* xslStyle.println("<th>Modification Date</th> ");
*/
/*
* xslStyle.println("<th>Title</th> ");
* xslStyle.println("<th>Author</th> ");
*/
xslStyle.println("<th>Software</th> ");
xslStyle.println("</tr>");
xslStyle.println("<xsl:for-each select=\"PdfMetadata/File\">");
xslStyle.println("<xsl:sort select=\"CreationYear\" />");
xslStyle.println("<tr class=\"captiontan\">");
xslStyle.println("<td><xsl:value-of select=\"FileName\"/></td>");
/*
* xslStyle.println("<td><xsl:value-of select=\"MetadataEntries\"/></td>"
* );
*/
xslStyle.println("<td><xsl:value-of select=\"CreationYear\"/></td>");
xslStyle.println("<td><xsl:value-of select=\"PdfVersion\"/></td>");
/*
* xslStyle.println("<td><xsl:value-of select=\"CreationDate\"/></td>");
* xslStyle
* .println("<td><xsl:value-of select=\"ModificationDate\"/></td>");
*/
/*
* xslStyle.println("<td><xsl:value-of select=\"Title\"/></td>");
* xslStyle.println("<td><xsl:value-of select=\"Author\"/></td>");
*/
xslStyle.println("<td><xsl:value-of select=\"Producer\"/></td>");
xslStyle.println("</tr>");
xslStyle.println("</xsl:for-each>");
xslStyle.println("</table>");
xslStyle.println("</body>");
xslStyle.println("</html>");
xslStyle.println("</xsl:template>");
xslStyle.println("</xsl:stylesheet>");
xslStyle.close();
}
}