]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.xml.sax/src/org/simantics/xml/sax/SchemaObject.java
Refactoring and preparing the conversion code to handle references between XML schemas.
[simantics/interop.git] / org.simantics.xml.sax / src / org / simantics / xml / sax / SchemaObject.java
index c081b8188443a6d49adf4d38fac17ccf33f41187..4138222913bb100923e0f08748d73a7445cfb55d 100644 (file)
@@ -6,11 +6,12 @@ import org.w3._2001.xmlschema.AttributeGroupRef;
 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
@@ -33,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
@@ -51,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
@@ -82,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