]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.xml.sax/src/org/simantics/xml/sax/ExporterGenerator.java
Handling ComplexTypes defined with SimpleContent
[simantics/interop.git] / org.simantics.xml.sax / src / org / simantics / xml / sax / ExporterGenerator.java
index c767311b66be7a42a951e00d28fff9d4fee0c7aa..1976664fa73b758358a20d98a162379fc5e07381 100644 (file)
@@ -11,7 +11,6 @@ import java.util.Map;
 import javax.xml.namespace.QName;\r
 \r
 import org.simantics.utils.datastructures.BijectionMap;\r
-import org.simantics.xml.sax.SchemaConversionBase.RefType;\r
 import org.simantics.xml.sax.configuration.AttributeComposition;\r
 import org.simantics.xml.sax.configuration.Configuration;\r
 import org.simantics.xml.sax.configuration.IDProvider;\r
@@ -25,7 +24,6 @@ import org.w3._2001.xmlschema.Element;
 import org.w3._2001.xmlschema.LocalComplexType;\r
 import org.w3._2001.xmlschema.LocalSimpleType;\r
 import org.w3._2001.xmlschema.NamedAttributeGroup;\r
-import org.w3._2001.xmlschema.OpenAttrs;\r
 import org.w3._2001.xmlschema.Restriction;\r
 import org.w3._2001.xmlschema.Schema;\r
 import org.w3._2001.xmlschema.SimpleType;\r
@@ -39,7 +37,7 @@ public class ExporterGenerator extends JavaGenerator{
 \r
        \r
        \r
-       public void createParser(Schema schema,String className, SchemaConverter converter) throws IOException {\r
+       public void createParser(Schema schema,String ontologyUri, String className, SchemaConverter converter) throws IOException {\r
                this.schema = schema;\r
                this.ontologyClassName = className;\r
                this.converter = converter;\r
@@ -101,6 +99,7 @@ public class ExporterGenerator extends JavaGenerator{
                mainWriter.println("   public " + name + parserClassPostfix+"(Session session) throws DatabaseException {");\r
                if (schema.getTargetNamespace() != null)\r
                mainWriter.println("      setSchemaURI(\""+schema.getTargetNamespace()+"\");");\r
+               mainWriter.println("      setOntologyURI(\""+ontologyUri+"\");");\r
                mainWriter.println("      session.syncRequest(new ReadRequest() {");\r
                mainWriter.println("        @Override");\r
                mainWriter.println("        public void run(ReadGraph graph) throws DatabaseException {");\r
@@ -127,12 +126,15 @@ public class ExporterGenerator extends JavaGenerator{
                return "org.simantics.xml.sax.base.XMLElementNamedChildWriterBase";\r
        }\r
        \r
+       @Override\r
+       protected void handleSimpleType(SchemaObject parent, SchemaObject simpleTypeObj) {\r
+       }\r
 \r
        @Override\r
        protected void handleComplexType(SchemaObject complexTypeObj) {\r
                ComplexType topLevelComplexType = complexTypeObj.getComplexType();\r
                \r
-               String name = getName(complexTypeObj);//topLevelComplexType.getName();\r
+               String name = getName(complexTypeObj);\r
                \r
                String className = name;//"_"+name;\r
                \r
@@ -143,22 +145,25 @@ public class ExporterGenerator extends JavaGenerator{
                        throw new RuntimeException(e);\r
                }\r
                writers.put(complexTypeObj, fw);\r
-               \r
-               boolean isList = false;\r
 \r
-               String baseClass = "org.simantics.xml.sax.base.XMLElementNamedChildWriterBase";\r
+               String baseClass = getBaseClass();\r
                \r
                boolean inherited = false;\r
                \r
                QName type = getComplexTypeBase(topLevelComplexType);\r
                if (type != null && !type.getNamespaceURI().equals("http://www.w3.org/2001/XMLSchema")) {\r
-                       baseClass = getName(complexTypeName.get(type.getLocalPart()));\r
-                       inherited = true;\r
+                       SchemaObject obj = complexTypeName.get(type.getLocalPart());\r
+//                     if (obj == null)\r
+//                             obj = simpleTypeName.get(type.getLocalPart());\r
+                       if (obj != null) {\r
+                               baseClass = getName(obj);\r
+                               inherited = true;\r
+                       }\r
                }\r
                \r
                provider = getIDProvider(topLevelComplexType);\r
-               List<IDReference> references = getIDReferences(topLevelComplexType);\r
-               UnrecognizedChildElement unknownChildElement = getUnknown(topLevelComplexType);\r
+//             List<IDReference> references = getIDReferences(topLevelComplexType);\r
+//             UnrecognizedChildElement unknownChildElement = getUnknown(topLevelComplexType);\r
 \r
 //             List<String> intrerfaces = new ArrayList<String>();\r
 //             if (references.size() > 0)\r
@@ -167,7 +172,7 @@ public class ExporterGenerator extends JavaGenerator{
 //                     intrerfaces.add("org.simantics.xml.sax.base.UnrecognizedElementParser");\r
                \r
                createClassHeader(fw.writer);\r
-               writeClass(fw.writer,false, null, className, baseClass, Collections.EMPTY_LIST);\r
+               writeClass(fw.writer,false, topLevelComplexType.getName(), className, baseClass, Collections.EMPTY_LIST);\r
                        \r
 //             writeIDProvider(fw.writer);\r
        \r
@@ -617,10 +622,7 @@ public class ExporterGenerator extends JavaGenerator{
        }\r
        \r
        \r
-       @Override\r
-       protected void handleSimpleType(SchemaObject parent, SchemaObject simpleType) {\r
-\r
-       }\r
+       \r
        \r
        \r
        \r