X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.xml.sax%2Fsrc%2Forg%2Fsimantics%2Fxml%2Fsax%2FOntologyGenerator.java;fp=org.simantics.xml.sax%2Fsrc%2Forg%2Fsimantics%2Fxml%2Fsax%2FOntologyGenerator.java;h=8e5c3c1fdeb7dfb85a684f855927c4d568410768;hb=28cdb08c2dcc6b306d8a0cbea8c0bd791e42d583;hp=287156299dfe0213ee43f5f858ec44afd29ad04a;hpb=dd3b2c7ecd5f4b60734f2602b16637aa8be2a263;p=simantics%2Finterop.git diff --git a/org.simantics.xml.sax/src/org/simantics/xml/sax/OntologyGenerator.java b/org.simantics.xml.sax/src/org/simantics/xml/sax/OntologyGenerator.java index 2871562..8e5c3c1 100644 --- a/org.simantics.xml.sax/src/org/simantics/xml/sax/OntologyGenerator.java +++ b/org.simantics.xml.sax/src/org/simantics/xml/sax/OntologyGenerator.java @@ -251,38 +251,57 @@ public class OntologyGenerator extends SchemaConversionBase { @Override - protected void handleIndicator(SchemaObject parent, SchemaElement indicator, SchemaElement element, boolean reference, String refName, QName refType) { - String type = getL0TypeFromPrimitiveType(refType); - SchemaObject obj = null; - if (type == null) { - obj = getWithName(parent, refType.getLocalPart()); + //protected void handleIndicator(SchemaObject parent, SchemaElement indicator, SchemaElement element, boolean reference, String refName, QName refType) { + protected void handleIndicator(SchemaObject parent, SchemaElement indicator, SchemaElement element, String refName, RefType refType) { + if (refType != refType.Element) { + QName referenceType = null; + if (refType == RefType.Type) { + referenceType = element.getElement().getType(); + //refName = element.getElement().getName() + SchemaObject eObj = elements.get(element.getElement()); + if (refName == null) + refName = eObj.getName(); + } else { + referenceType = element.getElement().getRef(); + if (refName == null) + refName = referenceType.getLocalPart(); + } + String type = getL0TypeFromPrimitiveType(referenceType); + SchemaObject obj = null; + if (type == null) { + obj = getWithName(parent, referenceType.getLocalPart()); + + writer.println(ontRoot+getName(parent)+".has"+refName + " " + ontRoot+getName(obj)); + } else { + writer.println(ontRoot+getName(parent)+".has"+refName + " " + getType(referenceType)); + } - writer.println(ontRoot+getName(parent)+".has"+refName + " " + ontRoot+getName(obj)); + if (useElementList(parent, indicator,element, refType == RefType.Reference, refName, referenceType)) { + + if (type == null) { + writer.println(ontRoot+getName(parent)+"."+refName + "List " + getType(refType)); - } - - if (useElementList(parent, indicator,element, reference, refName, refType)) { + Element attrs = element.getElement(); + SchemaObject obj = getWithObj(parent, attrs); + if (refName == null) + refName = obj.getName(); - if (type == null) { + writer.println(ontRoot+getName(parent)+".has"+refName + " " + ontRoot+getName(obj)); + if (useElementList(parent, indicator,element, false, refName, new QName(obj.getName()))) { writer.println(ontRoot+getName(parent)+"."+refName + "List " + ontRoot+getName(obj)); - if (useElementList(parent, indicator,element, reference, refName, new QName(obj.getName()))) { - writer.println(ontRoot+getName(parent)+"."+refName + "List