}
}
}
private void processRoot(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
DataFactory dataFactory = aHelperContext.getDataFactory();
SDOTypeHelper typeHelper = (SDOTypeHelper)aHelperContext.getTypeHelper();
getXmlDocument().setRootElementName(localName);
getXmlDocument().setRootElementURI(namespaceURI);
Property rootElementProperty = aHelperContext.getXSDHelper().getGlobalProperty(namespaceURI, localName, true);
Type rootObjectType = null;
if (rootElementProperty != null) {
rootObjectType = rootElementProperty.getType();
} else {
QName typeQName = getTypeAttributeQName(atts);
if (typeQName != null) {
String typeName = typeQName.getLocalPart();
String typeUri = null;
String prefix = typeQName.getPrefix();
if (prefix == null) {
typeUri = null;
} else {
Stack uriStack = (Stack)getNamespaceMap().get(prefix);
if(uriStack != null && uriStack.size() > 0) {
typeUri = (String)uriStack.peek();
}
}
rootObjectType = typeHelper.getType(typeUri, typeName);
}
}
DataObject rootObject = null;
if (rootObjectType != null) {
giveToOXToProcess(namespaceURI, localName, qName, atts, ((SDOType)rootObjectType).getXmlDescriptor());
return;
} else {
Type rootType = aHelperContext.getTypeHelper().getType(SDOConstants.ORACLE_SDO_URL, "OpenSequencedType");
rootObject = dataFactory.create(rootType);
}
currentDataObjects.push(rootObject);
depth++;
processAttributes(atts, rootObject, true);