import javax.xml.namespace.QName;\r
\r
import org.simantics.utils.datastructures.BijectionMap;\r
+import org.simantics.xml.sax.SchemaObject.ObjectType;\r
import org.simantics.xml.sax.configuration.AttributeComposition;\r
import org.simantics.xml.sax.configuration.Configuration;\r
import org.simantics.xml.sax.configuration.IDReference;\r
}\r
\r
\r
- public static String getComplexTypePrefix() {\r
+ public String getComplexTypePrefix() {\r
return "ComplexTypes.";\r
}\r
\r
- public static String getAttributeGroupPrefix() {\r
+ public String getAttributeGroupPrefix() {\r
return "AttributeGroups.";\r
}\r
\r
break;\r
}\r
}\r
- String relationName = ontRoot+getName(parent)+".has"+name;\r
+ String relationName = getName(parent)+".has"+name;\r
writer.print(relationName);\r
\r
List<String> types = new ArrayList<String>();\r
}\r
if (type == null) {\r
SchemaObject obj = getWithName(parent, refType.getLocalPart());\r
- types.add(ontRoot+getName(obj,"has"));\r
+ types.add(getName(obj,"has"));\r
} \r
}\r
if (types.size() > 0) {\r
if (type == null) {\r
obj = getWithName(parent, referenceType.getLocalPart());\r
\r
- writer.println(ontRoot+getName(parent)+".has"+refName + " <R " + ontRoot+ getName(obj,"has"));\r
- writer.println(" --> " + ontRoot+getName(obj));\r
+ writer.println(getName(parent)+".has"+refName + " <R " + getName(obj,"has"));\r
+ writer.println(" --> " + getName(obj));\r
} else {\r
- writer.println(ontRoot+getName(parent)+".has"+refName + " <R XML.hasElement");\r
+ writer.println(getName(parent)+".has"+refName + " <R XML.hasElement");\r
writer.println(" --> " + getType(referenceType));\r
}\r
\r
if (useElementList(parent, indicator,element, refType == RefType.Reference, refName, referenceType)) {\r
\r
if (type == null) {\r
- writer.println(ontRoot+getName(parent)+"."+refName + "List <T XML.ElementList");\r
- writer.println(ontRoot+getName(parent)+".has"+refName + "List <R " + ontRoot+getName(obj,"has")+"List : L0.FunctionalRelation");\r
+ writer.println(getName(parent)+"."+refName + "List <T XML.ElementList");\r
+ writer.println(getName(parent)+".has"+refName + "List <R " + getName(obj,"has")+"List : L0.FunctionalRelation");\r
} else {\r
- writer.println(ontRoot+getName(parent)+"."+refName + "List <T XML.ElementList");\r
- writer.println(ontRoot+getName(parent)+".has"+refName + "List <R XML.hasElementList : L0.FunctionalRelation"); \r
+ writer.println(getName(parent)+"."+refName + "List <T XML.ElementList");\r
+ writer.println(getName(parent)+".has"+refName + "List <R XML.hasElementList : L0.FunctionalRelation"); \r
}\r
}\r
} else {\r
if (refName == null)\r
refName = obj.getName();\r
\r
- writer.println(ontRoot+getName(parent)+".has"+refName + " <R " + ontRoot+ getName(obj,"has"));\r
- writer.println(" --> " + ontRoot+getName(obj));\r
+ writer.println(getName(parent)+".has"+refName + " <R " + getName(obj,"has"));\r
+ writer.println(" --> " + getName(obj));\r
if (useElementList(parent, indicator,element, false, refName, new QName(obj.getName()))) {\r
- writer.println(ontRoot+getName(parent)+"."+refName + "List <T XML.ElementList");\r
- writer.println(ontRoot+getName(parent)+".has"+refName + "List <R " + ontRoot+getName(obj,"has")+"List : L0.FunctionalRelation");\r
+ writer.println(getName(parent)+"."+refName + "List <T XML.ElementList");\r
+ writer.println(getName(parent)+".has"+refName + "List <R " + getName(obj,"has")+"List : L0.FunctionalRelation");\r
}\r
}\r
\r
if (name != null) {\r
relationName = ontRoot+"has"+name;\r
if (parent != null)\r
- relationName = ontRoot+getName(parent)+".has"+name;\r
+ relationName = getName(parent)+".has"+name;\r
relationType = "XML.hasAttribute";\r
}\r
else if (ref != null && parent != null) {\r
- relationName = ontRoot+getName(parent)+".has"+ref.getLocalPart();\r
+ relationName = getName(parent)+".has"+ref.getLocalPart();\r
relationType = ontRoot+"has"+ref.getLocalPart();\r
} else {\r
throw new RuntimeException();\r
}\r
}\r
} else {\r
- writer.println(ontRoot+getName(parent) +" L0.Inherits " + ontRoot + getAttributeGroupPrefix() + attributeGroup.getRef().getLocalPart());\r
+ writer.println(getName(parent) +" L0.Inherits " + ontRoot + getAttributeGroupPrefix() + attributeGroup.getRef().getLocalPart());\r
}\r
\r
}\r
// TODO : process restriction in lists\r
String relationName = ontRoot+"has"+name;\r
if (parent != null)\r
- relationName = ontRoot+getName(parent)+".has"+name;\r
+ relationName = getName(parent)+".has"+name;\r
writer.println(relationName+ " <R XML.hasAttribute : L0.FunctionalRelation");\r
\r
String ontType = getL0Type(new QName(SCHEMA_NS, "string"));\r
\r
String relationName = ontRoot+"has"+name;\r
if (parent != null)\r
- relationName = ontRoot+getName(parent)+".has"+name;\r
+ relationName = getName(parent)+".has"+name;\r
\r
writer.println(relationName+ " <R XML.hasAttribute : L0.FunctionalRelation");\r
\r
// if (topLevelComplexType.getName().equals("Reference"))\r
// System.out.println();\r
\r
- String relationName = ontRoot+getName(topLevelComplexType,"has");//ontRoot+"has"+name;\r
+ String relationName = getName(topLevelComplexType,"has");//ontRoot+"has"+name;\r
\r
writer.println(relationName+ " <R XML.hasComplexType");\r
writer.println(relationName+ "List <R XML.hasElementList");\r
//writer.println(" --> " + ontRoot+getComplexTypePrefix()+name);\r
- writer.println(" --> " + ontRoot+name);\r
+ writer.println(" --> " + name);\r
writer.println();\r
- String baseType = "XML.ComplexType";\r
-\r
- QName base = getComplexTypeBase(topLevelComplexType.getComplexType());\r
- if (base != null) {\r
- baseType = getType(base);\r
- }\r
- base = getSimpleTypeBase(topLevelComplexType.getSimpleType());\r
- if (base != null) {\r
- baseType = getType(base);\r
+// String baseType = "XML.ComplexType";\r
+//\r
+// QName base = getComplexTypeBase(topLevelComplexType.getComplexType());\r
+// if (base != null) {\r
+// baseType = getType(base);\r
+// }\r
+// base = getSimpleTypeBase(topLevelComplexType.getSimpleType());\r
+// if (base != null) {\r
+// baseType = getType(base);\r
+// }\r
+ Inheritance inheritance = getInheritance(topLevelComplexType);\r
+ \r
+// writer.println(name+ " <T "+baseType);\r
+ \r
+ if(inheritance.type == InheritanceType.AtomicType) {\r
+ writer.println(name+ " <T "+inheritance.baseClass + " <T "+inheritance.atomicType.l0Type);\r
+ } else {\r
+ writer.println(name+ " <T "+inheritance.baseClass);\r
}\r
- //writer.println(ontRoot+getComplexTypePrefix()+name+ " <T "+baseType);\r
- writer.println(ontRoot+name+ " <T "+baseType);\r
+// if (!baseType.equals(inheritance.baseClass))\r
+// System.out.println();\r
super.handleComplexType(topLevelComplexType);\r
writer.println();\r
}\r
type += " <T " + t;\r
}\r
\r
- String relationName = ontRoot+getName(elementObj,"has");//ontRoot+"has"+name;\r
+ String relationName = getName(elementObj,"has");//ontRoot+"has"+name;\r
// if (elementObj.getParent() != null) {\r
// //relationName = ontRoot+getComplexTypePrefix()+"has"+name.substring(getComplexTypePrefix().length());\r
// relationName = ontRoot+getName(elementObj.getParent()) + "has"+element.getName();\r
writer.println(relationName+ " <R XML.hasElement");\r
writer.println(relationName+ "List <R XML.hasElementList");\r
\r
- writer.println(ontRoot+name+ " <T "+type);\r
+ writer.println(name+ " <T "+type);\r
\r
LocalComplexType complexType = element.getComplexType();\r
LocalSimpleType simpleType = element.getSimpleType();\r
List<IDReference> references = getIDReferences(element);\r
\r
for (IDReference ref : references) {\r
- writer.println(ontRoot+name+"."+ref.getReference().getName()+ " <R XML.hasReference");\r
+ writer.println(name+"."+ref.getReference().getName()+ " <R XML.hasReference");\r
}\r
\r
writer.println();\r
}\r
\r
- public static String getName(SchemaObject obj) {\r
+ @Override\r
+ protected String getBaseClass(ObjectType type) {\r
+ if (type == ObjectType.ELEMENT)\r
+ return "XML.Element";\r
+ if (type == ObjectType.COMPLEX_TYPE)\r
+ return "XML.ComplexType";\r
+ throw new RuntimeException("ObjectType " + type + " has no base class");\r
+ }\r
+ \r
+ public String getName(SchemaObject obj) {\r
if (obj.getParent() == null) {\r
switch (obj.getType()) {\r
case COMPLEX_TYPE:\r
- return getComplexTypePrefix()+obj.getName();\r
+ return ontRoot+getComplexTypePrefix()+obj.getName();\r
case ELEMENT:\r
- return obj.getName();\r
+ return ontRoot+obj.getName();\r
case ATTRIBUTE_GROUP:\r
- return getAttributeGroupPrefix()+obj.getName();\r
+ return ontRoot+getAttributeGroupPrefix()+obj.getName();\r
case SIMPLE_TYPE:\r
- return obj.getName();\r
+ return ontRoot+obj.getName();\r
}\r
} else {\r
SchemaObject o = obj;\r
name = name.substring(0, name.length()-1);\r
switch (prev.getType()) {\r
case COMPLEX_TYPE:\r
- return getComplexTypePrefix()+name;\r
+ return ontRoot+getComplexTypePrefix()+name;\r
case ELEMENT:\r
- return name;\r
+ return ontRoot+name;\r
case ATTRIBUTE_GROUP:\r
- return getAttributeGroupPrefix()+name;\r
+ return ontRoot+getAttributeGroupPrefix()+name;\r
case SIMPLE_TYPE:\r
- return name;\r
+ return ontRoot+name;\r
}\r
}\r
throw new RuntimeException();\r
\r
}\r
\r
- public static String getName(SchemaObject obj, String rel) {\r
+ public String getName(SchemaObject obj, String rel) {\r
if (obj.getParent() == null) {\r
switch (obj.getType()) {\r
case COMPLEX_TYPE:\r
- return getComplexTypePrefix()+rel+obj.getName();\r
+ return ontRoot+getComplexTypePrefix()+rel+obj.getName();\r
case ELEMENT:\r
- return rel+obj.getName();\r
+ return ontRoot+rel+obj.getName();\r
case ATTRIBUTE_GROUP:\r
- return getAttributeGroupPrefix()+rel+obj.getName();\r
+ return ontRoot+getAttributeGroupPrefix()+rel+obj.getName();\r
case SIMPLE_TYPE:\r
- return rel+obj.getName();\r
+ return ontRoot+rel+obj.getName();\r
}\r
} else {\r
SchemaObject o = obj;\r
name = name.substring(0, name.length()-1);\r
switch (prev.getType()) {\r
case COMPLEX_TYPE:\r
- return getComplexTypePrefix()+rel+name;\r
+ return ontRoot+getComplexTypePrefix()+rel+name;\r
case ELEMENT:\r
- return rel+name;\r
+ return ontRoot+rel+name;\r
case ATTRIBUTE_GROUP:\r
- return getAttributeGroupPrefix()+rel+name;\r
+ return ontRoot+getAttributeGroupPrefix()+rel+name;\r
case SIMPLE_TYPE:\r
- return rel+name;\r
+ return ontRoot+rel+name;\r
}\r
}\r
throw new RuntimeException();\r