]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.xml.sax/src/org/simantics/xml/data/DataSchemaConverter.java
XML data based schema and ontology generation
[simantics/interop.git] / org.simantics.xml.sax / src / org / simantics / xml / data / DataSchemaConverter.java
diff --git a/org.simantics.xml.sax/src/org/simantics/xml/data/DataSchemaConverter.java b/org.simantics.xml.sax/src/org/simantics/xml/data/DataSchemaConverter.java
new file mode 100644 (file)
index 0000000..e94f93e
--- /dev/null
@@ -0,0 +1,54 @@
+package org.simantics.xml.data;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Map;
+
+import javax.xml.bind.JAXBException;
+
+import org.simantics.xml.sax.SchemaConverter;
+import org.w3._2001.xmlschema.Schema;
+
+public class DataSchemaConverter extends SchemaConverter {
+
+       
+       private Map<String,Schema> schemaMap;
+       private Map<Schema,File> fileMap;
+       
+       public DataSchemaConverter(Schema schema, File schemaFile, File conversionFile, File outputPlugin) throws IOException {
+               super(schemaFile, conversionFile, outputPlugin);
+               this.schema = schema;
+       }
+       
+       @Override
+       protected Schema createSchema() throws JAXBException, FileNotFoundException {
+               return this.schema;
+       }
+       
+       public void setSchemaMap(Map<String, Schema> schemaMap) {
+               this.schemaMap = schemaMap;
+       }
+       
+       public void setFileMap(Map<Schema, File> fileMap) {
+               this.fileMap = fileMap;
+       }
+       
+       
+       @Override
+       protected SchemaConverter constructSubConverter(SchemaConverter parent, File schemaFile, File conversionFile,
+                       File outputPlugin, String ns) throws IOException {
+               
+               Schema schema = ((DataSchemaConverter)getRoot()).schemaMap.get(ns);
+               File file = ((DataSchemaConverter)getRoot()).fileMap.get(schema);
+               return new DataSchemaConverter(schema, this, file, conversionFile, outputPlugin);
+       }
+
+       public DataSchemaConverter(Schema schema, SchemaConverter parent, File schemaFile, File conversionFile, File outputPlugin)
+                       throws IOException {
+               super(parent, schemaFile, conversionFile, outputPlugin);
+               this.schema = schema;
+       }
+
+       
+}