XmlCursor cursor = rawPlan.newCursor();
try {
if (findNestedElement(cursor, desiredElement)) {
cursor.push();
convertToGeronimoSubSchemas(cursor);
cursor.pop();
XmlObject temp = cursor.getObject();
XmlObject result = temp.changeType(desiredType);
if (result == null || result.schemaType() != desiredType) {
result = temp.copy().changeType(desiredType);