    >>> from owslib.csw import CatalogueServiceWeb as cs
    >>> c=cs('http://geodiscover.cgdi.ca/wes/serviceManagerCSW/csw',timeout=30)
    >>> c.identification.title
    'Compusult CSW'
    >>> c.identification.version
    '2.0.2'
    >>> c.provider.name
    'Compusult Ltd.'
    >>> c.getdomain('GetRecords.outputSchema')
    >>> c.response
    '<?xml version="1.0" encoding="ISO-8859-1"?><ows:ExceptionReport xmlns:ows="http://www.opengis.net/ows" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/ows http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd"><ows:Exception exceptionCode="NoApplicableCode" locator=""><ows:ExceptionText>Internal Error</ows:ExceptionText></ows:Exception></ows:ExceptionReport>\r\n'
    >>> c.getrecords(keywords=['birds'])
    >>> c.results['matches']
    99
    >>> c.results['returned']
    10
    >>> c.records['9250AA67-F3AC-6C12-0CB9-0662231AA181'].title
    'ALLSPECIES'
    >>> c.records['9250AA67-F3AC-6C12-0CB9-0662231AA181'].abstract
    '272 Categorized Initiatives: Initiatives are referenced to a Category, Sub-Category and Subject Term index, through the cititzen science web site at http://www.citizenscience.ca'
    >>> c.getrecordbyid(['9250AA67-F3AC-6C12-0CB9-0662231AA181'])
    >>> c.getrecords(keywords=['hydrology'],outputschema='http://www.isotc211.org/2005/gmd')
    >>> c.exceptionreport
    >>> c.getrecords(keywords=['hydrology'],outputschema='http://www.isotc211.org/2005/gmd',maxrecords=2)
    >>> c.results['returned']
    2
    >>> c.records['World Glaciology Data, Geological Survey of Canada.xml'].identification.title
    'World Glaciology Data, Geological Survey of Canada'
    >>> c.records['World Glaciology Data, Geological Survey of Canada.xml'].identifier
    'World Glaciology Data, Geological Survey of Canada.xml'
    >>> c.records['World Glaciology Data, Geological Survey of Canada.xml'].stdname
    'ISO 19119 Metadata Standard for Geographic Information'
    >>> c.records['World Glaciology Data, Geological Survey of Canada.xml'].stdver
    'ISO 19115:2003'
    >>> c.harvest('somefile','someuri')
    >>> c.response
    '<?xml version="1.0" encoding="ISO-8859-1"?><ows:ExceptionReport xmlns:ows="http://www.opengis.net/ows" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/ows http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd"><ows:Exception exceptionCode="NoApplicableCode" locator="Access"><ows:ExceptionText>Access to Harvest denied</ows:ExceptionText></ows:Exception></ows:ExceptionReport>\r\n'
    >>> c.exceptionreport.exceptions
    [{'locator': 'Access', 'ExceptionText': 'Access to Harvest denied', 'exceptionCode': 'NoApplicableCode'}]
    >>> c.getrecords(keywords=['glacial'],outputschema='http://www.fgdc.gov')
    >>> c.results['matches']>370
    True
    >>> c.getrecords(keywords=['glacial'],outputschema='http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif', maxrecords=2)
    >>> len(c.records)
    2
