extended = resolveExtends(extending);
extended = resolveExtendsTarget(extending);
    private PropertyList innerResolve(PropertyList target)            throws CdlException {        ResolveResult result;        PropertyList output = target;        ResolveEnum state = ResolveEnum.ResolvedIncomplete;        ResolveEnum resolveState = target.getResolveState();        if (resolveState.isParseTimeResolutionComplete()) {            //we are in a state where no parse time resolution is required.            return target;        }        //do the work        QName extending = target.getExtendsName();        if (extending == null) {            //we are not extending anything...but our children might be.            output = resolveChildExtends(target);            state = ResolveEnum.ResolvedComplete;        } else {            //something to resolve.            PropertyList extended;            log.debug("Resolving " +                    target.getQName() +                    " extends " +                    extending);            extended = resolveExtends(extending);            if (extended.getResolveState() == ResolveEnum.ResolvedIncomplete) {                //if there is something that is unfinished at this level,                //leave off it for now. though this state should be                //impossible to reach here.                log.debug("extended state=" + extended.getResolveState());                //propagate it                output=extended;            } else {                //we have now resolved our parent.                //get on with it                PropertyList resolvedPropertyList = extended;                //copy attributes                target.mergeAttributes(resolvedPropertyList);                //now do the element inheritance                output = inheritChildren(target, resolvedPropertyList);            }            state = extended.getResolveState();        }        output.setResolveState(state);        result = new ResolveResult(output);        return output;    }