+ // prefer element reference over complex type reference\r
+ String primaryClassName = null;\r
+ String secondaryClassName = null;\r
+ if (refElement != null)\r
+ primaryClassName = getName(refElement);\r
+ else\r
+ primaryClassName = getName(refComplexType);\r
+ \r
+ if (refComplexType != null) {\r
+ secondaryClassName = getName(refComplexType);\r
+ } else {\r
+ secondaryClassName = getName(refElement);\r
+ }\r
+ boolean useElementList = useElementList(parent, indicator,element, referenceType == RefType.Reference, refName, refType);\r
+ boolean useOriginalList = useOriginalList(parent, indicator,element, referenceType == RefType.Reference, refName, refType);\r
+ createReferenceIndicator(parent, referenceType, refName, objectName, primaryClassName, secondaryClassName, useElementList, useOriginalList);\r
+ } else {\r
+ createPrimitiveIndicator(parent, refName, binding);\r
+ }\r
+ } else {\r
+ Element attrs= element.getElement();\r
+ SchemaObject obj = getWithObj(parent, attrs);\r
+ \r
+ String className = getName(obj);\r
+ if (refName == null)\r
+ refName = attrs.getName();\r
+ \r
+ boolean useElementList = useElementList(parent, indicator,element, false, refName, new QName(obj.getName()));\r
+ boolean useOriginalList = useOriginalList(parent, indicator,element, false, refName, new QName(obj.getName()));\r
+ createElementIndicator(parent, useElementList, refName, className, useOriginalList);\r
+ }\r
+ }\r