'Return a list of zones.
:return: ``list`` of :class:`Zone`'

def list_zones(self):

    schema_params = SCHEMA_BUILDER_MAP.get('list_zones')
    attributes = schema_params.get('attributes')
    schema = api_schema_builder(schema_params.get('urn_nid'), schema_params.get('method'), attributes)
    params = {'apiuser': self.key, 'apikey': self.secret}
    urn = schema.getchildren()[0]
    for child in urn:
        key = child.tag.split(':')[2]
        if (key in attributes):
            child.text = str(params.get(key))
    req_data = tostring(schema)
    action = '/services/dns/listZones.php'
    params = {}
    headers = {'SOAPAction': 'urn:listZoneswsdl#listZones'}
    response = self.connection.request(action=action, params=params, data=req_data, method='POST', headers=headers)
    zones = []
    for data in response.objects:
        zone = self.get_zone(data.get('id'))
        zones.append(zone)
    return zones
