]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.xml.sax/src/org/simantics/xml/sax/OntologyGenerator.java
Handling ComplexTypes defined with SimpleContent
[simantics/interop.git] / org.simantics.xml.sax / src / org / simantics / xml / sax / OntologyGenerator.java
index 8e5c3c1fdeb7dfb85a684f855927c4d568410768..e64a59bf3f296fb0fae84e84e3341502b406d522 100644 (file)
@@ -21,7 +21,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
@@ -37,7 +36,7 @@ public class OntologyGenerator extends SchemaConversionBase {
        String commentTag = "//";\r
        \r
        Schema schema;\r
-       String ontologyName;\r
+       String ontologyUri;\r
        String className;\r
        \r
        SchemaConverter converter;\r
@@ -51,7 +50,7 @@ public class OntologyGenerator extends SchemaConversionBase {
        public void createOntology(Schema schema, String ontologyName, String className, SchemaConverter converter) throws FileNotFoundException {\r
                this.schema = schema;\r
                this.converter = converter;\r
-               this.ontologyName = ontologyName;\r
+               this.ontologyUri = ontologyName;\r
                this.className = className;\r
                \r
 //             for (OpenAttrs attrs : schema.getIncludeOrImportOrRedefine()) {\r
@@ -85,14 +84,10 @@ public class OntologyGenerator extends SchemaConversionBase {
        }\r
        \r
        protected void handle(Schema schema) {\r
-               String parts[] = ontologyName.split("/");\r
+               String parts[] = ontologyUri.split("/");\r
                String name = parts[parts.length-1];\r
                ontRoot = name.substring(0, Math.min(3, name.length())).toUpperCase();\r
-               String version = schema.getVersion();\r
-               if (version == null)\r
-                       version = "1.0";\r
 \r
-               \r
                for (String s : converter.getHeader()) {\r
                        writer.println(commentTag + " " + s);   \r
                }\r
@@ -100,32 +95,13 @@ public class OntologyGenerator extends SchemaConversionBase {
                writer.println("L0 = <http://www.simantics.org/Layer0-1.1>");\r
                writer.println("XML = <http://www.simantics.org/XML-1.0>");\r
                writer.println();\r
-               writer.println(ontRoot + " = <" + ontologyName +"-"+ version+"> : L0.Ontology");\r
+               writer.println(ontRoot + " = <" + ontologyUri +"> : L0.Ontology");\r
                writer.println("   @L0.new");\r
                writer.println("   L0.HasResourceClass \"" + className +"\"");\r
                writer.println();\r
                writer.println();\r
                \r
                ontRoot += ".";\r
-               // TODO : these could be created in separate base ontology.\r
-//             writer.println(commentTag + " Built-in types");\r
-//             writer.println();\r
-//             writer.println(ontRoot+"XML : L0.Library");\r
-//             writer.println(ontRoot+"XML.hasAttribute <R L0.HasProperty");\r
-//             writer.println(ontRoot+"XML.hasID <R "+ontRoot+"XML.hasAttribute : L0.FunctionalRelation");\r
-//             writer.println("  --> L0.String");\r
-//             writer.println(ontRoot+"XML.ComplexType <T L0.Entity");\r
-//             writer.println(ontRoot+"XML.hasComplexType <R L0.IsComposedOf");\r
-//             writer.println(ontRoot+"XML.AttributeGroup  <T L0.Entity");\r
-//             writer.println(ontRoot+"XML.Element <T L0.Entity");\r
-//             writer.println(ontRoot+"XML.hasElement <R L0.IsComposedOf");\r
-//             writer.println(ontRoot+"XML.ElementList <T L0.List");\r
-//             writer.println(ontRoot+"XML.hasElementList <R L0.IsComposedOf");\r
-//             writer.println(ontRoot+"XML.hasOriginalElementList <R " + ontRoot+"XML.hasElementList");\r
-//             writer.println(ontRoot+"XML.hasReference <R L0.IsRelatedTo");\r
-//             writer.println(ontRoot+"XML.hasExternalReference <R L0.IsRelatedTo");\r
-//             writer.println("   L0.InverseOf " + ontRoot+"XML.externalReferenceOf <R L0.IsRelatedTo");\r
-//             writer.println();\r
                writer.println(ontRoot+"ComplexTypes : L0.Library");\r
                writer.println(ontRoot+"AttributeGroups : L0.Library");\r
                writer.println();\r
@@ -141,6 +117,8 @@ public class OntologyGenerator extends SchemaConversionBase {
                        return ontType;\r
                else if (isComplexTypeRef(qtype.getLocalPart()))\r
                        return ontRoot+getComplexTypePrefix()+qtype.getLocalPart();\r
+               else if (isSimpleTypeRef(qtype.getLocalPart()))\r
+                       return ontRoot+qtype.getLocalPart();\r
                else if (isElementRef(qtype.getLocalPart()))\r
                        return ontRoot+qtype.getLocalPart();\r
                else if (qtype.getPrefix() != null && qtype.getPrefix().length() > 0) {\r
@@ -251,7 +229,6 @@ public class OntologyGenerator extends SchemaConversionBase {
        \r
        \r
        @Override\r
-       //protected void handleIndicator(SchemaObject parent, SchemaElement indicator, SchemaElement element, boolean reference, String refName, QName refType) {\r
        protected void handleIndicator(SchemaObject parent, SchemaElement indicator, SchemaElement element, String refName, RefType refType) {\r
                if (refType != refType.Element) {\r
                        QName referenceType = null;\r
@@ -442,10 +419,8 @@ public class OntologyGenerator extends SchemaConversionBase {
        @Override\r
        protected void handleComplexType(SchemaObject topLevelComplexType) {\r
                String name = getName(topLevelComplexType);\r
-               if (name.contains("Pcurve"))\r
-                       System.out.println();\r
-//             if (parent != null)\r
-//                     name = parent +"_"+name;\r
+//             if (topLevelComplexType.getName().equals("Reference"))\r
+//                     System.out.println();\r
                \r
                String relationName = ontRoot+getName(topLevelComplexType,"has");//ontRoot+"has"+name;\r
                \r