<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _get_elements(self, url, key, eclass, id=None, name=None):
 """Get elements matching `id` or `name` Args: url(str):
 url of children. key(str):
 key in the returned JSON. eclass(subclass type of :py:class:`_ResourceElement`):
 element class to create instances of. id(str, optional):
 only return resources whose `id` property matches the given `id` name(str, optional):
 only return resources whose `name` property matches the given `name` Returns: list(_ResourceElement):
 List of `eclass` instances Raises: ValueError: both `id` and `name` are specified together """

        if id is not None and name is not None:
            raise ValueError("id and name cannot specified together")

        json_elements = self.rest_client.make_request(url)[key]
        return [eclass(element, self.rest_client) for element in json_elements
                if _exact_resource(element, id) and _matching_resource(element, name)]