}
protected void handleUnknownFeature(String prefix, String name, boolean isElement, EObject peekObject, String value) {
if (objects.size() == 1) {
EFactory eFactory;
EClassifier type;
String typeQName = getXSIType();
if (typeQName == null) {
type = defaultRootType(prefix, name, isElement, peekObject, value);
if (type == null)
return;
eFactory = type.getEPackage().getEFactoryInstance();
} else {// createObjectFromTypeName
String typeName = null;
String xsiPrefix = XMLConstants.DEFAULT_NS_PREFIX;
int index = typeQName.indexOf(":");
if (index > 0) {
xsiPrefix = typeQName.substring(0, index);
typeName = typeQName.substring(index + 1);
} else
typeName = typeQName;
eFactory = getFactoryForPrefix(xsiPrefix);
if (eFactory != null)
type = helper.getType(eFactory, typeName);
else if (XMLConstants.DEFAULT_NS_PREFIX.equals(xsiPrefix) && helper.getURI(xsiPrefix) == null) {
EPackage ePackage = handleMissingPackage(null);
if (ePackage == null) {
type = defaultRootType(prefix, name, isElement, peekObject, value);
if (type == null)
return;
eFactory = type.getEPackage().getEFactoryInstance();
} else
type = helper.getType(eFactory = ePackage.getEFactoryInstance(), typeName);
} else {
type = defaultRootType(prefix, name, isElement, peekObject, value);
if (type == null)
return;
eFactory = type.getEPackage().getEFactoryInstance();
}
}
root = helper.createObject(eFactory, type);
if (root != null) {
if (disableNotify)