1 package org.simantics.xml.sax;
3 import org.simantics.xml.sax.configuration.Rename;
4 import org.w3._2001.xmlschema.AttributeGroup;
5 import org.w3._2001.xmlschema.AttributeGroupRef;
6 import org.w3._2001.xmlschema.ComplexType;
7 import org.w3._2001.xmlschema.Element;
8 import org.w3._2001.xmlschema.NamedAttributeGroup;
9 import org.w3._2001.xmlschema.NamedGroup;
10 import org.w3._2001.xmlschema.OpenAttrs;
11 import org.w3._2001.xmlschema.SimpleType;
13 public class SchemaObject {
14 enum ObjectType{ELEMENT,COMPLEX_TYPE,SIMPLE_TYPE,ATTRIBUTE_GROUP,MODEL_GROUP};
16 private SchemaConversionBase sc;
18 private SchemaObject parent;
19 private ObjectType type;
20 private OpenAttrs obj;
21 private Rename rename;
23 public SchemaObject(SchemaConversionBase sc, Element element) {
24 this(sc,null,element);
27 public void setRename(Rename rename) {
32 public SchemaObject(SchemaConversionBase sc,ComplexType complexType) {
33 this(sc,null, complexType);
36 public SchemaObject(SchemaConversionBase sc,SimpleType simpleType) {
37 this(sc,null, simpleType);
40 public SchemaObject(SchemaConversionBase sc,NamedGroup namedGroup) {
41 this(sc,null, namedGroup);
44 public SchemaObject(SchemaConversionBase sc,SchemaObject parent, Element element) {
47 this.type = ObjectType.ELEMENT;
52 public SchemaObject(SchemaConversionBase sc,SchemaObject parent, ComplexType complexType) {
54 this.obj = complexType;
55 this.type = ObjectType.COMPLEX_TYPE;
60 public SchemaObject(SchemaConversionBase sc,SchemaObject parent, AttributeGroup attributeGroup) {
62 this.obj = attributeGroup;
63 this.type = ObjectType.ATTRIBUTE_GROUP;
68 public SchemaObject(SchemaConversionBase sc,SchemaObject parent, NamedGroup namedGroup) {
70 this.obj = namedGroup;
71 this.type = ObjectType.MODEL_GROUP;
77 public SchemaObject(SchemaConversionBase sc,SchemaObject parent, SimpleType simpleType) {
79 this.obj = simpleType;
80 this.type = ObjectType.SIMPLE_TYPE;
85 private void _init() {
88 name = name.replaceAll("\\.", "_");
91 public Element getElement() {
92 if (type != ObjectType.ELEMENT)
97 public ComplexType getComplexType() {
98 if (type != ObjectType.COMPLEX_TYPE)
100 return (ComplexType)obj;
103 public SimpleType getSimpleType() {
104 if (type != ObjectType.SIMPLE_TYPE)
106 return (SimpleType)obj;
109 public AttributeGroup getAttributeGroup() {
110 if (type != ObjectType.ATTRIBUTE_GROUP)
112 return (AttributeGroup)obj;
115 public NamedGroup getModelGroup() {
116 if (type != ObjectType.MODEL_GROUP)
118 return (NamedGroup)obj;
121 public SchemaObject getParent() {
125 public OpenAttrs getObj() {
130 public String getName() {
134 public String getLibShortName() {
135 return sc.converter.shortName;
139 private String _getName() {
141 case ATTRIBUTE_GROUP:
142 if (obj instanceof NamedAttributeGroup)
143 return ((NamedAttributeGroup)obj).getName();
145 return ((AttributeGroupRef)obj).getRef().getLocalPart();
148 return rename.getName();
149 return ((ComplexType)obj).getName();
152 return rename.getName();
153 return ((Element)obj).getName();
155 return ((SimpleType)obj).getName();
157 throw new RuntimeException("Unknown object type " + type);
160 public ObjectType getType() {
164 public SchemaConversionBase getSc() {