This is an old revision of the document!
<?php // hatop@ub.uni-marburg.de 2008-12-08 2009-12-03 // http://unapi.info/specs/ /* Copyright 2008 2009 Goetz Hatop * Goetz Hatop's original Version can be found at * <ftp://ftp.ub.uni-marburg.de/pub/research/unapi.tar.gz> */ /* Copyright 2009 Stephan Rosenke <rosenke@ulb.tu-darmstadt.de> */ /* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* Version: 0.1 */ /* Changelog * * 20091215: Added JSON as format. * 20091214: s/require/require_once/. * Made last switch() more validator compliant. * 20091211: Added HTTP-Response-Codes to some cases in the last switch. * Corrected answer if format=''. * Added BibTex as format. * 20091210: Put class Picappn to PicaRecord.php. * Inserted conditional for textual output of array. * Ordered final switch() alphabetically. * Added format "plain", renamed "picaplus" to "extpp". Put header() in the case-loops in final switch(). * 20091210: Started with Goetz Hatop's version of 2009-12-08 */ require_once('PicaRecord.php'); $noparam = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <formats> <format name=\"bibtex\" type=\"text/plain\" /> <format name=\"dc\" type=\"application/xml\" /> <format name=\"extpp\" type=\"application/xml\" /> <format name=\"rdf\" type=\"application/xml\" /> <format name=\"text\" type=\"text/plain\" /> <format name=\"xml\" type=\"application/xml\" /> </formats> "; $idparam = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <formats id=\"info:pica/004\"> <format name=\"text\" type=\"text/plain\" /> </formats> "; if (!isset($_GET[id]) || $_GET[id]=='') { header('Content-type: application/xml'); echo "$noparam"; return; } $pica = new Picappn(); $pica->setPpn( $_GET[id] ); if ($_GET[format] == "array") { echo "<head></head>\n<body>\n <pre>\n"; print_r($pica->getArray()); echo " </pre>\n</body>\n"; die(0); } switch ($_GET[format]) { case 'bibtex': $res = $pica->getBibTex(); final_result($res, 'text/plain'); break; case 'dc': $res = $pica->getDublinCore(); final_result($res, 'application/xml'); break; case 'extpp': $res = $pica->getPicaPlus(); final_result($res, 'application/xml'); break; case 'json': $res = $pica->getJson(); final_result($res, 'application/json'); break; case 'plain': $res = $pica->getPlain(); break; case 'rdf': $res = $pica->getDublinCoreRDF(); final_result($res, 'application/xml'); break; case 'text': $res = $pica->getText(); final_result($res, 'text/plain'); break; case 'xml': $res = $pica->getXmlData(); final_result($res, 'application/xml'); break; case '': header('HTTP/1.0 300 Multiple Choices'); header('Content-type: application/xml'); echo "$noparam"; break; default: header('HTTP/1.0 406 Not Acceptable'); break; } ?>