'a.b.c', 'datestamp' => date('Y-m-d-H:s'), 'set' => 'class:activity', 'metadata' => array( 'container_name' => 'oai_dc:dc', 'container_attributes' => array( 'xmlns:oai_dc' => "http://www.openarchives.org/OAI/2.0/oai_dc/", 'xmlns:dc' => "http://purl.org/dc/elements/1.1/", 'xmlns:xsi' => "http://www.w3.org/2001/XMLSchema-instance", 'xsi:schemaLocation' => 'http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd' ), 'fields' => array( 'dc:title' => 'Testing records', 'dc:author' => 'Neis' ) )); /* unit tests ;) */ if (!isset($args)) { $args = $_GET; } if (!isset($uri)) { $uri = 'test.oai_pmh'; } $oai2 = new OAI2Server($uri, $args, $identifyResponse, array( 'ListMetadataFormats' => function($identifier = '') { if (!empty($identifier) && $identifier != 'a.b.c') { throw new OAI2Exception('idDoesNotExist'); } return array('rif' => array('metadataPrefix'=>'rif', 'schema'=>'http://services.ands.org.au/sandbox/orca/schemata/registryObjects.xsd', 'metadataNamespace'=>'http://ands.org.au/standards/rif-cs/registryObjects/', ), 'oai_dc' => array('metadataPrefix'=>'oai_dc', 'schema'=>'http://www.openarchives.org/OAI/2.0/oai_dc.xsd', 'metadataNamespace'=>'http://www.openarchives.org/OAI/2.0/oai_dc/', 'record_prefix'=>'dc', 'record_namespace' => 'http://purl.org/dc/elements/1.1/')); }, 'ListSets' => function($resumptionToken = '') { return array ( array('setSpec'=>'class:collection', 'setName'=>'Collections'), array('setSpec'=>'math', 'setName'=>'Mathematics') , array('setSpec'=>'phys', 'setName'=>'Physics'), array('setSpec'=>'phdthesis', 'setName'=>'PHD Thesis', 'setDescription'=> ' '. ' This set contains metadata describing '. ' electronic music recordings made during the 1950ies '. ' ')); }, 'ListRecords' => function($metadataPrefix, $from = '', $until = '', $set = '', $count = false, $deliveredRecords = 0, $maxItems = 0) use ($example_record) { if ($count) { return 1; } if ($set != '') { throw new OAI2Exception('noSetHierarchy'); } if ($metadataPrefix != 'oai_dc') { throw new OAI2Exception('noRecordsMatch'); } return array($example_record); }, 'GetRecord' => function($identifier, $metadataPrefix) use ($example_record) { if ($identifier != 'a.b.c') { throw new OAI2Exception('idDoesNotExist'); } return $example_record; }, ) ); $response = $oai2->response(); if (isset($return)) { return $response; } else { $response->formatOutput = true; $response->preserveWhiteSpace = false; header('Content-Type: text/xml'); echo $response->saveXML(); }