private CROM findDerivedType(CROM crom0, CROM_Tree crom_tree, String xsiType) throws RuntimeException {
int k=xsiType.indexOf(':');
// ignore namesapce
// we assume there is no conflict of names among sub elements
if(k>0)xsiType=xsiType.substring(k+1);
CROM derivedTypeCrom=crom0.findSubNode(xsiType);
if(derivedTypeCrom==null){
for (Map.Entry<String, CROM> entry : crom_tree.getElementTypeMap().entrySet()) {
String name = entry.getValue().getName();
if (name.equals(xsiType)) {
CROM element_type = entry.getValue();
Stack<String> exploded=new Stack<String>();
derivedTypeCrom=new CROM(crom0, element_type, true,
crom_tree.getElementTypeMap(), exploded, "");
break;
}
}
}