1
2
3
4
5
6
7
8 package net.kwfgrid.gworkflowdl.conversion;
9
10 import org.jdom.transform.XSLTransformer;
11 import org.jdom.transform.XSLTransformException;
12 import org.jdom.Document;
13 import org.jdom.JDOMException;
14 import org.jdom.input.SAXBuilder;
15
16 import java.io.*;
17
18 import net.kwfgrid.gworkflowdl.structure.JdomString;
19
20 /***
21 * @author Andreas Hoheisel
22 * (<a href="http://www.andreas-hoheisel.de">www.andreas-hoheisel.de</a>)
23 * @version $Id: EPNML2GWorkflowDLConverter.java 1353 2010-03-04 16:21:48Z andreas.hoheisel@first.fraunhofer.de $
24 */
25 public class EPNML2GWorkflowDLConverter {
26
27 private final XSLTransformer transformer;
28
29 private static final boolean VALIDATE = false;
30 private static final String FEATURE_VALIDATION = "http://xml.org/sax/features/validation";
31 private static final String FEATURE_XSD = "http://apache.org/xml/features/validation/schema";
32 private static final String PROPERTY_XSD = "http://apache.org/xml/properties/schema/external-schemaLocation";
33
34
35 public EPNML2GWorkflowDLConverter() throws XSLTransformException {
36 System.setProperty( "javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl");
37 transformer = new XSLTransformer(getClass().getResourceAsStream("/epnml_1_1-to-gworkflowdl_2_1.xsl"));
38 }
39
40 /***
41 * Transforms EPNML 1.1 document to GWorkflowDL version 1.1
42 * @param epml The EPNML 1.1 document
43 * @return The GWorkflowDL 1.1 document
44 * @throws org.jdom.transform.XSLTransformException
45 */
46 public Document convertFromEPNMLToGWorkflowDL(Document epml) throws XSLTransformException {
47 return transformer.transform(epml);
48 }
49
50 public String convertFromEPNMLToGWorkflowDL(String xml) throws IOException, JDOMException {
51 final SAXBuilder builder = new SAXBuilder(VALIDATE);
52 builder.setFeature(FEATURE_VALIDATION, VALIDATE);
53 builder.setFeature(FEATURE_XSD, false);
54 Document gwdl11 = convertFromEPNMLToGWorkflowDL(builder.build(new StringReader(xml)));
55 return JdomString.document2string(gwdl11);
56 }
57
58 public static void main(String[] args) {
59 if (args.length < 2) {
60 System.out.println("Transforms EPNML 1.1 document to GWorkflowDL version 1.1");
61 System.out.println("Usage: java net.kwfgrid.gworkflowdl.conversion.EPNML2GWorkflowDLConverter <filename_epnml_1.1> <filename_gwdl_1.1>");
62 System.exit(1);
63 }
64
65 try {
66 EPNML2GWorkflowDLConverter converter = new EPNML2GWorkflowDLConverter();
67 FileUtils.writeFile(args[1],converter.convertFromEPNMLToGWorkflowDL(FileUtils.readFile(args[0])));
68 } catch (XSLTransformException e) {
69 System.err.println("exception:\n" + e);
70 System.exit(255);
71 } catch (IOException e) {
72 System.err.println("exception:\n" + e);
73 System.exit(254);
74 } catch (JDOMException e) {
75 System.err.println("exception:\n" + e);
76 System.exit(253);
77 }
78 }
79
80 }