]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.xml.sax/src/org/simantics/xml/sax/SchemaObject.java
Schema parsing can access data from other schemas (work in progress)
[simantics/interop.git] / org.simantics.xml.sax / src / org / simantics / xml / sax / SchemaObject.java
index 3b45c7e4d3e5ed54d6df7609a1c344792ee602c4..4138222913bb100923e0f08748d73a7445cfb55d 100644 (file)
@@ -1,24 +1,31 @@
 package org.simantics.xml.sax;\r
 \r
+import org.simantics.xml.sax.configuration.Rename;\r
 import org.w3._2001.xmlschema.AttributeGroup;\r
 import org.w3._2001.xmlschema.AttributeGroupRef;\r
 import org.w3._2001.xmlschema.ComplexType;\r
 import org.w3._2001.xmlschema.Element;\r
 import org.w3._2001.xmlschema.NamedAttributeGroup;\r
+import org.w3._2001.xmlschema.NamedGroup;\r
 import org.w3._2001.xmlschema.OpenAttrs;\r
 import org.w3._2001.xmlschema.SimpleType;\r
 \r
 public class SchemaObject {\r
-       enum ObjectType{ELEMENT,COMPLEX_TYPE,SIMPLE_TYPE,ATTRIBUTE_GROUP};\r
+       enum ObjectType{ELEMENT,COMPLEX_TYPE,SIMPLE_TYPE,ATTRIBUTE_GROUP,MODEL_GROUP};\r
        \r
        private SchemaObject parent;\r
        private ObjectType type;\r
        private OpenAttrs obj;\r
+       private Rename rename;\r
        \r
        public SchemaObject(Element element) {\r
                this(null,element);\r
        }\r
        \r
+       public void setRename(Rename rename) {\r
+               this.rename = rename;\r
+       }\r
+       \r
        public SchemaObject(ComplexType complexType) {\r
                this(null, complexType);\r
        }\r
@@ -27,6 +34,10 @@ public class SchemaObject {
                this(null, simpleType);\r
        }\r
        \r
+       public SchemaObject(NamedGroup namedGroup) {\r
+               this(null, namedGroup);\r
+       }\r
+       \r
        public SchemaObject(SchemaObject parent, Element element) {\r
                this.parent = parent;\r
                this.obj = element;\r
@@ -45,6 +56,12 @@ public class SchemaObject {
                this.type = ObjectType.ATTRIBUTE_GROUP;\r
        }\r
        \r
+       public SchemaObject(SchemaObject parent, NamedGroup namedGroup) {\r
+               this.parent = parent;\r
+               this.obj = namedGroup;\r
+               this.type = ObjectType.MODEL_GROUP;\r
+       }\r
+       \r
 \r
        public SchemaObject(SchemaObject parent, SimpleType simpleType) {\r
                this.parent = parent;\r
@@ -76,6 +93,12 @@ public class SchemaObject {
                return (AttributeGroup)obj;\r
        }\r
        \r
+       public NamedGroup getModelGroup() {\r
+               if (type != ObjectType.MODEL_GROUP)\r
+                       return null;\r
+               return (NamedGroup)obj;\r
+       }\r
+       \r
        public SchemaObject getParent() {\r
                return parent;\r
        }\r
@@ -93,8 +116,12 @@ public class SchemaObject {
                        else\r
                                return ((AttributeGroupRef)obj).getRef().getLocalPart();\r
                case COMPLEX_TYPE:\r
+                       if (rename != null)\r
+                               return rename.getName();\r
                        return ((ComplexType)obj).getName();\r
                case ELEMENT:\r
+                       if (rename != null)\r
+                               return rename.getName();\r
                        return ((Element)obj).getName();\r
                case SIMPLE_TYPE:\r
                        return ((SimpleType)obj).getName();\r