Changeset 2096


Ignore:
Timestamp:
02/02/07 12:24:23 (12 years ago)
Author:
mpritcha
Message:

Added MDIP present format (...probably not working completely yet)

Location:
TI01-discovery/trunk/ws-Discovery2/src/ndg/services/discovery
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery/trunk/ws-Discovery2/src/ndg/services/discovery/DiscoveryServiceSkeleton.java

    r2094 r2096  
    247247                        list.addListMember("original"); 
    248248                        list.addListMember("DC"); 
     249                        list.addListMember("DIF"); 
     250                        list.addListMember("MDIP"); 
    249251                        //list.addListMember("iso19115"); 
    250252                        //list.addListMember("moles"); 
    251                         list.addListMember("DIF"); 
    252253                } 
    253254                else if ( requestContent.getListName().equals("orderByFieldList") ) 
  • TI01-discovery/trunk/ws-Discovery2/src/ndg/services/discovery/PresentAgent.java

    r2094 r2096  
    220220                                        } 
    221221                                        else { 
    222                                                 throw new Exception("Doc was null"); 
     222                                                throw new Exception("Unable to create DC format document"); 
    223223                                        }                                                
    224224                                } 
     
    259259                                        } 
    260260                                        else { 
    261                                                 throw new Exception("Doc was null"); 
     261                                                throw new Exception("Unable to create DIF format document"); 
    262262                                        }                                                
    263263                                } 
    264  
     264                                else if ( this.format.equals("MDIP") ) 
     265                                { 
     266                                        //1. Check to see if a dc-format document exists for this name 
     267                                        Vector queryParams = new Vector(); 
     268                                        String xqueryStr = "declare default element namespace 'http://www.dassh.ac.uk';declare namespace moles='http://ndg.nerc.ac.uk/moles';declare namespace gco='http://www.isotc211.org/2005/gco';declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance'; declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions';declare variable $ISO_639-2_ns as xs:string{'UKGemini_Langauge_Categories'};declare variable $ISO_3166_ns as xs:string{'UKGemini_Land_Area_Categories'};for $DE in collection('/db/discovery/moles')/moles:dgMetadata/moles:dgMetadataRecord[ exists('moles:dgDataEntity')    and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'] where util:document-name($DE)='"+thisdoc+"' return element Metadata {   element Title {data($DE/moles:name)},   if (exists($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDatasetLanguage)) then            for $lang in $DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDatasetLanguage         return                  element Language{                               element LanguageName {data($lang/dgValidTerm)},                         element LanguageVocab {data($lang/dgValidTermID/ParentListID)},                         element LanguageCode {data($lang/dgValidTermID/TermID)}                 }                                       else (),        element Abstract {},    for $isoTopic in $DE/moles:dgStructuredKeyword[moles:dgValidTermID/moles:ParentListID='']       return element TopicCategory {},        for $subject in $DE/moles:dgDataEntity/moles:dgParameterSummary/moles:dgStdParameterMeasured[moles:dgValidTermID/moles:ParentListID=''] return element Subject {},      element Date {          element DatasetStartDate {},            element DatasetEndDate {}       }}"; 
     269 
     270                                        queryParams.addElement( xqueryStr.getBytes("UTF-8") );  
     271                                        queryParams.addElement( 1 ); 
     272                                        queryParams.addElement( 1 );  
     273 
     274                                        Hashtable docSearchOptions = new Hashtable(); 
     275                                        docSearchOptions.put("indent", "yes"); 
     276                                        docSearchOptions.put("encoding", "UTF-8"); 
     277                                        docSearchOptions.put("process-xsl-pi", "no"); 
     278                                        queryParams.addElement( docSearchOptions ); 
     279 
     280                                        byte[] resultByteArray = (byte[])xmlrpc.execute( "query", queryParams ); 
     281                                        System.out.println( new String( resultByteArray ) ); 
     282 
     283                                        ByteArrayInputStream resultStream = new ByteArrayInputStream( resultByteArray ); 
     284 
     285                                        SAXBuilder builder = new SAXBuilder(); 
     286                                        org.jdom.Document doc = builder.build( resultStream ); 
     287                                        org.jdom.Element root = doc.getRootElement(); 
     288                                        org.jdom.Element elem = root.getChild("Metadata", Namespace.getNamespace("mdip","http://www.dassh.ac.uk") ); 
     289 
     290                                        //  Use XMLOutputter 
     291                                        XMLOutputter out = new XMLOutputter (); 
     292                                        out.setFormat( Format.getCompactFormat() ); // UTF-8 & trimming of whitespace 
     293                                        returnDoc = out.outputString( elem ); 
     294 
     295                                        if (returnDoc != null) 
     296                                        { 
     297                                                result.setStatus( true ); 
     298                                                result.setStatusMessage( "Success" ); 
     299                                                returnDocs.add( returnDoc );             
     300                                        } 
     301                                        else { 
     302                                                throw new Exception("Unable to create MOLES format document"); 
     303                                        }                                                
     304                                } 
    265305                                else 
    266306                                        { 
Note: See TracChangeset for help on using the changeset viewer.