]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.xml.sax/src/org/simantics/xml/sax/SchemaConverter.java
Initial support for XML export (order of Elements is not kept)
[simantics/interop.git] / org.simantics.xml.sax / src / org / simantics / xml / sax / SchemaConverter.java
index 523788c8e33971819ed2c709cc79c48c642edb66..32ae1672baa41dc4ff00b588556c3f03ecb6f9a5 100644 (file)
@@ -33,6 +33,12 @@ public class SchemaConverter {
        \r
        private String[] header;\r
        \r
+       boolean createPGraph = true;\r
+       boolean createImporter = true;\r
+       boolean createExporter = true;\r
+       \r
+       \r
+       \r
 \r
        public void convertSchema(File schemaFile, File conversionFile, File outputPlugin) throws JAXBException, IOException {\r
                pluginName = outputPlugin.getName();\r
@@ -61,6 +67,18 @@ public class SchemaConverter {
                \r
        }\r
        \r
+       public void setCreateExporter(boolean createExporter) {\r
+               this.createExporter = createExporter;\r
+       }\r
+       \r
+       public void setCreateImporter(boolean createImporter) {\r
+               this.createImporter = createImporter;\r
+       }\r
+       \r
+       public void setCreatePGraph(boolean createPGraph) {\r
+               this.createPGraph = createPGraph;\r
+       }\r
+       \r
        private void convert() throws JAXBException, IOException {\r
                JAXBContext jc = JAXBContext.newInstance("org.w3._2001.xmlschema");\r
                Unmarshaller u = jc.createUnmarshaller();\r
@@ -84,10 +102,37 @@ public class SchemaConverter {
                header[3] = "Date " + new Date().toString();\r
                \r
                \r
+               String ontologyName = schema.getTargetNamespace();\r
+               if (ontologyName == null) {\r
+                       ontologyName = getSchemaFile().getName();\r
+                       \r
+                       int index = ontologyName.lastIndexOf(".");\r
+                       if (index > 0)\r
+                               ontologyName = ontologyName.substring(0, index);\r
+               } \r
+               if (!ontologyName.startsWith("http"))\r
+                       ontologyName = "http://" + ontologyName;\r
+               String parts[] = ontologyName.split("/");\r
+               String name = parts[parts.length-1];\r
+               //String ontRoot = name.substring(0, Math.min(3, name.length())).toUpperCase();\r
+\r
+               \r
+               name = name.replaceAll("\\.", "_");\r
+               name = name.replaceAll(" ", "_");\r
+               String className = getPluginName() + "." + name;\r
+               \r
+               if (createPGraph) {\r
                OntologyGenerator ontologyGenerator = new OntologyGenerator(configuration);\r
-               ontologyGenerator.createOntology(schema, this);\r
+               ontologyGenerator.createOntology(schema, ontologyName, className, this);\r
+               }\r
+               if (createImporter) {\r
                ImporterGenerator importerGenerator = new ImporterGenerator(configuration);\r
-               importerGenerator.createParser(schema, ontologyGenerator.getClassName(), this);\r
+               importerGenerator.createParser(schema, className, this);\r
+               }\r
+               if (createExporter) {\r
+               ExporterGenerator exporterGenerator = new ExporterGenerator(configuration);\r
+               exporterGenerator.createParser(schema, className, this);\r
+               }\r
        }\r
        \r
        public File getOntologyFile() {\r