X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.xml.sax%2Fsrc%2Forg%2Fsimantics%2Fxml%2Fsax%2FSchemaObject.java;h=4138222913bb100923e0f08748d73a7445cfb55d;hb=f11cbe76b3f4be142c9f84ef9a7b6bc9dcc8ff23;hp=3b45c7e4d3e5ed54d6df7609a1c344792ee602c4;hpb=ada38ab0a1a98dcb413bef3273064da36ce2d273;p=simantics%2Finterop.git diff --git a/org.simantics.xml.sax/src/org/simantics/xml/sax/SchemaObject.java b/org.simantics.xml.sax/src/org/simantics/xml/sax/SchemaObject.java index 3b45c7e..4138222 100644 --- a/org.simantics.xml.sax/src/org/simantics/xml/sax/SchemaObject.java +++ b/org.simantics.xml.sax/src/org/simantics/xml/sax/SchemaObject.java @@ -1,24 +1,31 @@ package org.simantics.xml.sax; +import org.simantics.xml.sax.configuration.Rename; import org.w3._2001.xmlschema.AttributeGroup; import org.w3._2001.xmlschema.AttributeGroupRef; import org.w3._2001.xmlschema.ComplexType; import org.w3._2001.xmlschema.Element; import org.w3._2001.xmlschema.NamedAttributeGroup; +import org.w3._2001.xmlschema.NamedGroup; import org.w3._2001.xmlschema.OpenAttrs; import org.w3._2001.xmlschema.SimpleType; public class SchemaObject { - enum ObjectType{ELEMENT,COMPLEX_TYPE,SIMPLE_TYPE,ATTRIBUTE_GROUP}; + enum ObjectType{ELEMENT,COMPLEX_TYPE,SIMPLE_TYPE,ATTRIBUTE_GROUP,MODEL_GROUP}; private SchemaObject parent; private ObjectType type; private OpenAttrs obj; + private Rename rename; public SchemaObject(Element element) { this(null,element); } + public void setRename(Rename rename) { + this.rename = rename; + } + public SchemaObject(ComplexType complexType) { this(null, complexType); } @@ -27,6 +34,10 @@ public class SchemaObject { this(null, simpleType); } + public SchemaObject(NamedGroup namedGroup) { + this(null, namedGroup); + } + public SchemaObject(SchemaObject parent, Element element) { this.parent = parent; this.obj = element; @@ -45,6 +56,12 @@ public class SchemaObject { this.type = ObjectType.ATTRIBUTE_GROUP; } + public SchemaObject(SchemaObject parent, NamedGroup namedGroup) { + this.parent = parent; + this.obj = namedGroup; + this.type = ObjectType.MODEL_GROUP; + } + public SchemaObject(SchemaObject parent, SimpleType simpleType) { this.parent = parent; @@ -76,6 +93,12 @@ public class SchemaObject { return (AttributeGroup)obj; } + public NamedGroup getModelGroup() { + if (type != ObjectType.MODEL_GROUP) + return null; + return (NamedGroup)obj; + } + public SchemaObject getParent() { return parent; } @@ -93,8 +116,12 @@ public class SchemaObject { else return ((AttributeGroupRef)obj).getRef().getLocalPart(); case COMPLEX_TYPE: + if (rename != null) + return rename.getName(); return ((ComplexType)obj).getName(); case ELEMENT: + if (rename != null) + return rename.getName(); return ((Element)obj).getName(); case SIMPLE_TYPE: return ((SimpleType)obj).getName();