def getrecords(self, qtype=None, keywords=[], typenames='<STR_LIT>', propertyname='<STR_LIT>', bbox=None, esn='<STR_LIT>', sortby=None, outputschema=namespaces['<STR_LIT>'], format=outputformat, startposition=<NUM_LIT:0>, maxrecords=<NUM_LIT:10>, cql=None, xml=None, resulttype='<STR_LIT>'):
warnings.warn("""<STR_LIT>""")<EOL>if xml is not None:<EOL><INDENT>self.request = etree.fromstring(xml)<EOL>val = self.request.find(util.nspath_eval('<STR_LIT>', namespaces))<EOL>if val is not None:<EOL><INDENT>esn = util.testXMLValue(val)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>node0 = self._setrootelement('<STR_LIT>')<EOL>if etree.__name__ != '<STR_LIT>':  <EOL><INDENT>node0.set('<STR_LIT>', namespaces['<STR_LIT>'])<EOL>node0.set('<STR_LIT>', namespaces['<STR_LIT>'])<EOL>node0.set('<STR_LIT>', namespaces['<STR_LIT>'])<EOL>node0.set('<STR_LIT>', namespaces['<STR_LIT>'])<EOL><DEDENT>node0.set('<STR_LIT>', outputschema)<EOL>node0.set('<STR_LIT>', format)<EOL>node0.set('<STR_LIT:version>', self.version)<EOL>node0.set('<STR_LIT>', resulttype)<EOL>node0.set('<STR_LIT>', self.service)<EOL>if startposition > <NUM_LIT:0>:<EOL><INDENT>node0.set('<STR_LIT>', str(startposition))<EOL><DEDENT>node0.set('<STR_LIT>', str(maxrecords))<EOL>node0.set(util.nspath_eval('<STR_LIT>', namespaces), schema_location)<EOL>node1 = etree.SubElement(node0, util.nspath_eval('<STR_LIT>', namespaces))<EOL>node1.set('<STR_LIT>', typenames)<EOL>etree.SubElement(node1, util.nspath_eval('<STR_LIT>', namespaces)).text = esn<EOL>self._setconstraint(node1, qtype, propertyname, keywords, bbox, cql, None)<EOL>if sortby is not None:<EOL><INDENT>fes.setsortby(node1, sortby)<EOL><DEDENT>self.request = node0<EOL><DEDENT>self._invoke()<EOL>if self.exceptionreport is None:<EOL><INDENT>self.results = {}<EOL>val = self._exml.find(util.nspath_eval('<STR_LIT>', namespaces)).attrib.get('<STR_LIT>')<EOL>self.results['<STR_LIT>'] = int(util.testXMLValue(val, True))<EOL>val = self._exml.find(util.nspath_eval('<STR_LIT>', namespaces)).attrib.get('<STR_LIT>')<EOL>self.results['<STR_LIT>'] = int(util.testXMLValue(val, True))<EOL>val = self._exml.find(util.nspath_eval('<STR_LIT>', namespaces)).attrib.get('<STR_LIT>')<EOL>self.results['<STR_LIT>'] = int(util.testXMLValue(val, True))<EOL>self.records = OrderedDict()<EOL>self._parserecords(outputschema, esn)<EOL><DEDENT>
Construct and process a  GetRecords request

Parameters
----------

- qtype: type of resource to query (i.e. service, dataset)
- keywords: list of keywords
- typenames: the typeNames to query against (default is csw:Record)
- propertyname: the PropertyName to Filter against 
- bbox: the bounding box of the spatial query in the form [minx,miny,maxx,maxy]
- esn: the ElementSetName 'full', 'brief' or 'summary' (default is 'summary')
- sortby: property to sort results on
- outputschema: the outputSchema (default is 'http://www.opengis.net/cat/csw/2.0.2')
- format: the outputFormat (default is 'application/xml')
- startposition: requests a slice of the result set, starting at this position (default is 0)
- maxrecords: the maximum number of records to return. No records are returned if 0 (default is 10)
- cql: common query language text.  Note this overrides bbox, qtype, keywords
- xml: raw XML request.  Note this overrides all other options
- resulttype: the resultType 'hits', 'results', 'validate' (default is 'results')