X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.xml.sax%2Fsrc%2Forg%2Fsimantics%2Fxml%2Fsax%2FSchemaObject.java;fp=org.simantics.xml.sax%2Fsrc%2Forg%2Fsimantics%2Fxml%2Fsax%2FSchemaObject.java;h=cae979265a0f8f2e79fe13aa40b0acd8f9601927;hb=5985d5ea605049222dc5a4acb0accf77afd8f76f;hp=53f9da9fb0b4a749041f8704440aa5b34627f36f;hpb=8c7637425667bd9710be0fe6afe437050fea59b7;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 53f9da9..cae9792 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,6 +1,7 @@ package org.simantics.xml.sax; import org.simantics.xml.sax.configuration.Rename; +import org.w3._2001.xmlschema.Attribute; import org.w3._2001.xmlschema.AttributeGroup; import org.w3._2001.xmlschema.AttributeGroupRef; import org.w3._2001.xmlschema.ComplexType; @@ -11,7 +12,7 @@ import org.w3._2001.xmlschema.OpenAttrs; import org.w3._2001.xmlschema.SimpleType; public class SchemaObject { - enum ObjectType{ELEMENT,COMPLEX_TYPE,SIMPLE_TYPE,ATTRIBUTE_GROUP,MODEL_GROUP}; + enum ObjectType{ELEMENT,COMPLEX_TYPE,SIMPLE_TYPE,ATTRIBUTE_GROUP,MODEL_GROUP,ATTRIBUTE}; private SchemaConversionBase sc; private String name; @@ -41,6 +42,10 @@ public class SchemaObject { this(sc,null, namedGroup); } + public SchemaObject(SchemaConversionBase sc, Attribute attribute) { + this(sc,null, attribute); + } + public SchemaObject(SchemaConversionBase sc,SchemaObject parent, Element element) { this.parent = parent; this.obj = element; @@ -82,6 +87,14 @@ public class SchemaObject { _init(); } + public SchemaObject(SchemaConversionBase sc,SchemaObject parent, Attribute attribute) { + this.parent = parent; + this.obj = attribute; + this.type = ObjectType.ATTRIBUTE; + this.sc = sc; + _init(); + } + private void _init() { name = _getName(); if (name != null) @@ -118,6 +131,12 @@ public class SchemaObject { return (NamedGroup)obj; } + public Attribute getAttribute() { + if (type != ObjectType.ATTRIBUTE) + return null; + return (Attribute)obj; + } + public SchemaObject getParent() { return parent; } @@ -153,6 +172,8 @@ public class SchemaObject { return ((Element)obj).getName(); case SIMPLE_TYPE: return ((SimpleType)obj).getName(); + case ATTRIBUTE: + return ((Attribute)obj).getName(); } throw new RuntimeException("Unknown object type " + type); }