From: <rd...@us...> - 2008-09-17 11:15:58
|
Revision: 1603 http://digir.svn.sourceforge.net/digir/?rev=1603&view=rev Author: rdg Date: 2008-09-17 18:15:53 +0000 (Wed, 17 Sep 2008) Log Message: ----------- Display documentation when no parameters are passed. Made parameter names shorter. Modified Paths: -------------- tapirbuilder/trunk/www/cnsconverter.php Modified: tapirbuilder/trunk/www/cnsconverter.php =================================================================== --- tapirbuilder/trunk/www/cnsconverter.php 2006-10-18 15:35:40 UTC (rev 1602) +++ tapirbuilder/trunk/www/cnsconverter.php 2008-09-17 18:15:53 UTC (rev 1603) @@ -23,22 +23,12 @@ //author Franck Theeten-RMCA: 16/01/2007 -//1): This page is a kind of rudimentar webservice returning the description of a CNS file under the form of a XML (no schema for this XML yet) -// -example of CNS file: http://rs.tdwg.org/tapir/cns/alias.txt -//2): The resulting XML can be parsed by an AJAX service (see 'TpTool.js' for the Ajax functions and 'testCNSWebService.html' for a demo) -//3): This page is based on 'TpToolCNSViewer.php' -//4): HTTP GET parameters are: -//4.1): 'cnslocation': the url of the CNS file (mandatory) -//4.2): 'modefulldesc': value can be 'true' or 'false': (optional, useful when only the CNS file is specified, without requesting a particular concept) -// -when 'true', the description of the available schemas is accompanied with the description of the concepts and concepts paths belonging to each schema -// -when 'false": in order to gain speed, only the schema informations are returned (schema name, schema alias, and locations). -//4.3): 'schemaalias': alias of the schema to be described (returns all the concepts and the concepts path belonging to a particular schema) (optional) (case insensitive) -//4.4): 'conceptalias': alias of the concept to be described (returns path of the concepts)- optional, but requires 'schemalias' (case insensitive)) +//Call the script without any parameters to see the documentation. //--------------------------------------------------------------------------------------------// //examples of queries -//1) 'http://localhost:8090/TDWGDev/TapirLink0.5Classes/www/TpToolCNSToXml.php?cnslocation=http://rs.tdwg.org/tapir/cns/alias.txt' +//1) 'http://localhost:8090/TDWGDev/TapirLink0.5Classes/www/TpToolCNSToXml.php?url=http://rs.tdwg.org/tapir/cns/alias.txt' //-> output: // <cns> // <schema namespace="http://rs.tdwg.org/dwc/dwcore/"> @@ -50,7 +40,7 @@ // ... // <schema> // <cns> -//2) 'http://localhost:8090/TDWGDev/TapirLink0.5Classes/www/TpToolCNSToXml.php?cnslocation=http://rs.tdwg.org/tapir/cns/alias.txt&modefulldesc=true' +//2) 'http://localhost:8090/TDWGDev/TapirLink0.5Classes/www/TpToolCNSToXml.php?url=http://rs.tdwg.org/tapir/cns/alias.txt&modefulldesc=true' //-> output: // <cns> // <schema namespace="http://rs.tdwg.org/dwc/dwcore/"> @@ -70,10 +60,10 @@ // ... // <schema> // <cns> -//3) 'http://localhost:8090/TDWGDev/TapirLink0.5Classes/www/TpToolCNSToXml.php?cnslocation=http://rs.tdwg.org/tapir/cns/alias.txt&schemaalias=abcd120' +//3) 'http://localhost:8090/TDWGDev/TapirLink0.5Classes/www/TpToolCNSToXml.php?url=http://rs.tdwg.org/tapir/cns/alias.txt&schema=abcd120' //-> output: // see: example 2 -//4) 'http://localhost:8090/TDWGDev/TapirLink0.5Classes/www/TpToolCNSToXml.php?cnslocation=http://rs.tdwg.org/tapir/cns/alias.txt&schemaalias=dwc&conceptalias=Remarks' +//4) 'http://localhost:8090/TDWGDev/TapirLink0.5Classes/www/TpToolCNSToXml.php?url=http://rs.tdwg.org/tapir/cns/alias.txt&schema=dwc&concept=Remarks' //-> output // see: example 2 @@ -83,97 +73,101 @@ require_once('../lib/TpToolCNSViewer.php'); -if (!empty($_GET)) // if GET parameter +if (empty($_GET)) { - if ( !isset($_GET['cnslocation']) || empty($_GET['cnslocation']) ) - { - // if no CNS location given return arror message + + echo <<<END +Please specify at least the mandatory parameters: +<ul> +<li><b>url:</b> Mandatory parameter. URL of the CNS file.</li> +<li><b>full:</b> Optional boolean parameter (default "false"). When "true", all information is returned. When false, only schema information is returned ("concept" parameter will be ignored in this case). +<li><b>schema:</b> Optional parameter. Alias of a particular schema to be described, in case there are multiple schemas in the document.</li> +<li><b>concept:</b> Optional parameter. Alias of a particular concept to be described. Requires the 'schema' parameter.</li> +</ul> +END; + + exit(); +} + +if ( !isset($_GET['url']) || empty($_GET['url']) ) +{ + // if no CNS location given return arror message - $error_string .= '<error level="fatal" time="'.date("c") - .'"> no "endpoint" parameter was given, or the parameter was empty. For all operations except "help", this parameter is required, because the tool must know which endpoint server to contact. If you want a short manual for using this tool, simply point your browser at its base URL, using the "op=help" parameter : '.$GQT_server_url.'?op=help </error>'; + $error_string .= '<error level="fatal" time="'.date("c") + .'"> no "endpoint" parameter was given, or the parameter was empty. For all operations except "help", this parameter is required, because the tool must know which endpoint server to contact. If you want a short manual for using this tool, simply point your browser at its base URL, using the "op=help" parameter : '.$GQT_server_url.'?op=help </error>'; - $fatal_error_flag = TRUE; - header('Content-type: text/xml'); - header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 - header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past - print("<cns><errors><phpmessage>".$error_string."</phpmessages></errors></cns>"); + $fatal_error_flag = TRUE; + header('Content-type: text/xml'); + header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 + header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past + print("<cns><errors><phpmessage>".$error_string."</phpmessages></errors></cns>"); - } - else - { //ok : endpoint provided +} +else +{ //ok : endpoint provided - //take CNS url - $cns_endpoint = urlencode($_GET['cnslocation']); - //declare class for parser - $CNSViewer=new TpToolCNSViewer(urldecode($cns_endpoint)); + //take CNS url + $cns_endpoint = urlencode($_GET['url']); + //declare class for parser + $CNSViewer=new TpToolCNSViewer(urldecode($cns_endpoint)); - //schema alias and concept alias are given-> return example 4 - if(isset($_GET['schemaalias'])&&!(empty($_GET['schemaalias']))&&isset($_GET['conceptalias'])&&!(empty($_GET['conceptalias']))) + //schema alias and concept alias are given-> return example 4 + if(isset($_GET['schema'])&&!(empty($_GET['schema']))&&isset($_GET['concept'])&&!(empty($_GET['concept']))) + { + try { - try - { - // - $xml_string=$CNSViewer->getAvailableConceptLocationsXML($_GET['schemaalias'], $_GET['conceptalias']); - } - catch(Exception $e) - { - $xml_string="<cns><errors><phpmessage>".$e."</phpmessages></errors></cns>"; - - } + // + $xml_string=$CNSViewer->getAvailableConceptLocationsXML($_GET['schema'], $_GET['concept']); } - //schema alias is given-> return example 3 - else if (isset($_GET['schemaalias'])&&!(empty($_GET['schemaalias']))) + catch(Exception $e) { - //echo($cns_endpoint); - try - { - $xml_string=$CNSViewer->getAvailableConceptsXML($_GET['schemaalias']); - - } - catch(Exception $e) - { - $xml_string="<cns><errors><phpmessage>".$e."</phpmessages></errors></cns>"; - - } - + $xml_string="<cns><errors><phpmessage>".$e."</phpmessages></errors></cns>"; } - //'modefulldesc=true'->return all concepts belonging to a schema-> example 2 - else if(isset($_GET['modefulldesc'])&&!(empty($_GET['modefulldesc']))&&($_GET['modefulldesc']=='true')) + } + //schema alias is given-> return example 3 + else if (isset($_GET['schema'])&&!(empty($_GET['schema']))) + { + //echo($cns_endpoint); + try { - try - { - $xml_string=$CNSViewer->getAvailableExchangeSchemasAndConceptsXML(); - } - catch(Exception $e) - { - $xml_string="<cns><errors><phpmessage>".$e."</phpmessages></errors></cns>"; - - } + $xml_string=$CNSViewer->getAvailableConceptsXML($_GET['schema']); } - else //only schema is given->example 1 + catch(Exception $e) { - try - { - $xml_string=$CNSViewer->getAvailableExchangeSchemasXML(); - } - catch(Exception $e) - { - $xml_string="<cns><errors><phpmessage>".$e."</phpmessages></errors></cns>"; - - } + $xml_string="<cns><errors><phpmessage>".$e."</phpmessages></errors></cns>"; } + } + //'modefulldesc=true'->return all concepts belonging to a schema-> example 2 + else if(isset($_GET['full'])&&!(empty($_GET['full']))&&($_GET['full']=='true')) + { + try + { + $xml_string=$CNSViewer->getAvailableExchangeSchemasAndConceptsXML(); + } + catch(Exception $e) + { + $xml_string="<cns><errors><phpmessage>".$e."</phpmessages></errors></cns>"; + } + } + else //only schema is given->example 1 + { + try + { + $xml_string=$CNSViewer->getAvailableExchangeSchemasXML(); + } + catch(Exception $e) + { + $xml_string="<cns><errors><phpmessage>".$e."</phpmessages></errors></cns>"; + } + } - //mandatory (or the browser will consider returned value as HTML) - header('Content-type: text/xml'); + //mandatory (or the browser will consider returned value as HTML) + header('Content-type: text/xml'); - //better to avoid cache in case of slow connection (or the cache will contain a 'no access because of time out' page) - header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 - header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past - print($xml_string); - - } + //better to avoid cache in case of slow connection (or the cache will contain a 'no access because of time out' page) + header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 + header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past + print($xml_string); } - - ?> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |