X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.xml.sax%2Fsrc%2Forg%2Fsimantics%2Fxml%2Fsax%2FOntologyGenerator.java;h=095de9d2c20049a9f543fdae21459ebc8ef1dc91;hb=057ca542a11f7d0eb83860e3e65fd6eff79813ea;hp=530798ed2844bab05acb6784e4085dd69d04544b;hpb=ada38ab0a1a98dcb413bef3273064da36ce2d273;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 530798e..095de9d 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 @@ -101,6 +101,7 @@ public class OntologyGenerator extends SchemaConversionBase { version = "1.0"; name = name.replaceAll("\\.", "_"); + name = name.replaceAll(" ", "_"); className = converter.getPluginName() + "." + name; for (String s : converter.getHeader()) { @@ -108,6 +109,7 @@ public class OntologyGenerator extends SchemaConversionBase { } writer.println(); writer.println("L0 = "); + writer.println("XML = "); writer.println(); writer.println(ontRoot + " = <" + ontologyName +"-"+ version+"> : L0.Ontology"); writer.println(" @L0.new"); @@ -117,24 +119,24 @@ public class OntologyGenerator extends SchemaConversionBase { ontRoot += "."; // TODO : these could be created in separate base ontology. - writer.println(commentTag + " Built-in types"); - writer.println(); - writer.println(ontRoot+"XML : L0.Library"); - writer.println(ontRoot+"XML.hasAttribute L0.String"); - writer.println(ontRoot+"XML.ComplexType L0.String"); +// writer.println(ontRoot+"XML.ComplexType " + ontRoot+getName(obj)); } else { - writer.println(ontRoot+getName(parent)+".has"+refName + " " + getType(refType)); } if (useElementList(parent, indicator,element, reference, refName, refType)) { if (type == null) { - 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 " + ontType); + org.w3._2001.xmlschema.List list = simpleType.getList(); + if (list != null) { + // TODO : process restriction in lists + String relationName = ontRoot+"has"+name; + if (parent != null) + relationName = ontRoot+getName(parent)+".has"+name; + writer.println(relationName+ " " + ontType); + } else { + Restriction restriction = simpleType.getRestriction(); + if (restriction == null || simpleType.getUnion() != null || simpleType.getId() != null) + throw new RuntimeException(simpleType.getName() + " restriction error"); + QName base = restriction.getBase(); + + String relationName = ontRoot+"has"+name; + if (parent != null) + relationName = ontRoot+getName(parent)+".has"+name; + + writer.println(relationName+ " " + ontType); + } } @Override @@ -426,12 +441,12 @@ public class OntologyGenerator extends SchemaConversionBase { String relationName = ontRoot+getName(topLevelComplexType,"has");//ontRoot+"has"+name; - writer.println(relationName+ " " + ontRoot+getComplexTypePrefix()+name); writer.println(" --> " + ontRoot+name); writer.println(); - String baseType = ontRoot+"XML.ComplexType"; + String baseType = "XML.ComplexType"; QName base = getComplexTypeBase(topLevelComplexType.getComplexType()); if (base != null) { @@ -451,11 +466,14 @@ public class OntologyGenerator extends SchemaConversionBase { protected void handleElement(SchemaObject elementObj) { Element element = elementObj.getElement(); String name = getName(elementObj);//element.getName(); + +// if ("Presentation".equals(name)) +// System.out.println(); // if (parent != null) // name = parent +"_"+name; - String type = ontRoot+"XML.Element"; + String type = "XML.Element"; Set types = new LinkedHashSet(); if (element.getType() != null) { types.add(getType(element.getType())); @@ -488,8 +506,8 @@ public class OntologyGenerator extends SchemaConversionBase { // //relationName = ontRoot+getComplexTypePrefix()+"has"+name.substring(getComplexTypePrefix().length()); // relationName = ontRoot+getName(elementObj.getParent()) + "has"+element.getName(); // } - writer.println(relationName+ " references = getIDReferences(element); for (IDReference ref : references) { - writer.println(ontRoot+name+"."+ref.getReference().getName()+ "