@classmethod
def with_json_and_owner(cls, jsonobj, owner):
    """ Instantiates by forwarding to `with_json()`, then remembers the
        "owner" of the instantiated elements. The "owner" is the resource
        containing the receiver and is used to resolve contained resources.
        
        :raises: TypeError on anything but dict or list of dicts
        :raises: FHIRValidationError if instantiation fails
        :param dict jsonobj: Decoded JSON dictionary (or list thereof)
        :param FHIRElement owner: The owning parent
        :returns: An instance or a list of instances created from JSON data
        """
    instance = cls.with_json(jsonobj)
    if isinstance(instance, list):
        for inst in instance:
            inst._owner = owner
    else:
        instance._owner = owner
    return instance
