public function exportProjectXml(
        $returnMetadataOnly = false,
        $recordIds = null,
        $fields = null,
        $events = null,
        $filterLogic = null,
        $exportSurveyFields = false,
        $exportDataAccessGroups = false,
        $exportFiles = false
    ) {
        $data = array(
                'token'        => $this->apiToken,
                'content'      => 'project_xml',
                'returnFormat' => 'json'
        );
        
        #---------------------------------------------
        # Process the arguments
        #---------------------------------------------
        $data['returnMetadataOnly'] = $this->processReturnMetadataOnlyArgument($returnMetadataOnly);

        $data['records']     = $this->processRecordIdsArgument($recordIds);
        $data['fields']      = $this->processFieldsArgument($fields);
        $data['events']      = $this->processEventsArgument($events);
        $data['filterLogic'] = $this->processFilterLogicArgument($filterLogic);
        
        $data['exportSurveyFields']     = $this->processExportSurveyFieldsArgument($exportSurveyFields);
        $data['exportDataAccessGroups'] = $this->processExportDataAccessGroupsArgument($exportDataAccessGroups);
        $data['exportFiles']            = $this->processExportFilesArgument($exportFiles);
        
        #---------------------------------------
        # Get the Project XML and process it
        #---------------------------------------
        $projectXml = $this->connection->callWithArray($data);
        $projectXml = $this->processExportResult($projectXml, $format = 'xml');
        
        return $projectXml;
    }