<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def resolve(self, nobuiltin=False):
 """ Resolve the node's type reference and return the referenced type node. Returns self if the type is defined locally, e.g. as a <complexType> subnode. Otherwise returns the referenced external node. @param nobuiltin: Flag indicating whether resolving to XSD built-in types should not be allowed. @return: The resolved (true) type. @rtype: L{SchemaObject} """

        cached = self.resolved_cache.get(nobuiltin)
        if cached is not None:
            return cached
        resolved = self.__resolve_type(nobuiltin)
        self.resolved_cache[nobuiltin] = resolved
        return resolved