// Process all the global XSD elements
EClass documentRoot = extendedMetaData.getDocumentRoot(currentEPackage);
if (documentRoot != null) {
for (EStructuralFeature element : (List<EStructuralFeature>)extendedMetaData
.getElements(documentRoot)) {
EClassifier elementType = element.getEType();
// Handle a complex type
if (elementType instanceof EClass) {
EClass eClass = (EClass)elementType;
GenClass genClass = genClasses.get(elementType);
QName qname = new QName(extendedMetaData.getNamespace(currentEPackage),
extendedMetaData.getName(element));
String interfaceName = genClass.getGenPackage().getInterfacePackageName()
+ '.' + genClass.getInterfaceName();
boolean anonymous = extendedMetaData.isAnonymous(eClass);
// Build list of property class names
List<String> propertyClassNames=new ArrayList<String>();
for (EStructuralFeature feature : (List<EStructuralFeature>)eClass.getEStructuralFeatures()) {
EClassifier propertyType = feature.getEType();
if (propertyType instanceof EClass) {
GenClass propertyGenClass = genClasses.get(propertyType);
String propertyClassName = propertyGenClass.getGenPackage().getInterfacePackageName()
+ '.' + propertyGenClass.getInterfaceName();
propertyClassNames.add(propertyClassName);
} else if (propertyType instanceof EClassifier) {
String propertyClassName = propertyType.getInstanceClass().getName();
propertyClassNames.add(propertyClassName);
}
}
SDODataBindingTypeMappingEntry typeMappingEntry =