Changeset 6599


Ignore:
Timestamp:
22/02/10 11:32:12 (9 years ago)
Author:
mnagni
Message:

Refactoring of WSDL/XSD pair in order to have the WSDL import the XSD
First implementation of a SoapUI test project. Anyway because actually is binded to the deploying server, this functionality is disabled.
Refactoring of some of packages names

Location:
TI01-discovery-API/trunk/MEDINDiscoveryService
Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery-API/trunk/MEDINDiscoveryService/.project

    r6458 r6599  
    66        </projects> 
    77        <buildSpec> 
     8                <buildCommand> 
     9                        <name>org.eclipse.wst.common.project.facet.core.builder</name> 
     10                        <arguments> 
     11                        </arguments> 
     12                </buildCommand> 
    813                <buildCommand> 
    914                        <name>org.eclipse.jdt.core.javabuilder</name> 
     
    2025                <nature>org.eclipse.jdt.core.javanature</nature> 
    2126                <nature>org.maven.ide.eclipse.maven2Nature</nature> 
     27                <nature>org.eclipse.wst.common.project.facet.core.nature</nature> 
    2228        </natures> 
    2329</projectDescription> 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/pom.xml

    r6458 r6599  
    1818                        <url>http://repository.sonatype.org/content/repositories/central</url> 
    1919                </pluginRepository> 
     20                <pluginRepository> 
     21                        <id>eviwarePluginRepository</id> 
     22                        <url>http://www.eviware.com/repository/maven2/</url> 
     23                </pluginRepository> 
    2024        </pluginRepositories> 
    2125 
     
    103107                                        <generateServicesXml>true</generateServicesXml> 
    104108                                        <generateServerSideInterface>true</generateServerSideInterface> 
     109                                        <!-- 
     110                                                <namespaceURIs> <namespaceURI> 
     111                                                <uri>http://medin.discovery.services.ndg/</uri> 
     112                                                <packageName>ndg.services.discovery.medin</packageName> 
     113                                                </namespaceURI> </namespaceURIs> 
     114                                        --> 
    105115                                </configuration> 
    106116                        </plugin> 
     
    187197                                </executions> 
    188198                        </plugin> 
     199<!-- 
     200                        <plugin> 
     201                                <groupId>eviware</groupId> 
     202                                <artifactId>maven-soapui-plugin</artifactId> 
     203                                <version>2.5.1</version> 
     204                                <configuration> 
     205                                        <projectFile>${basedir}/src/test/resources/DiscoveryServiceMEDIN-soapui-project.xml</projectFile> 
     206                                        <host>130.246.188.102:8080/axis2/services/DiscoveryServiceMEDIN</host> 
     207                                </configuration> 
     208                        </plugin> 
     209--> 
    189210 
    190211                </plugins> 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/java/ndg/common/db/NdgBasicDataSource.java

    r6510 r6599  
    88import javax.sql.DataSource; 
    99 
     10import ndg.common.NdgDictionary; 
    1011import ndg.common.NdgMessage; 
    1112import ndg.common.exception.ResourceNotAvailable; 
    12 import ndg.services.discovery.medin.DiscoveryDictionary; 
    1313 
    1414import org.apache.commons.dbcp.BasicDataSource; 
     
    2424        private String jndiDataSource; 
    2525        private DataSource dataSource = null; 
    26          
    2726        @Override 
    2827        /** 
     
    7473                        throw new ResourceNotAvailable( 
    7574                                        new NdgMessage("config.not.loaded.error",  
    76                                                         new Object[]{DiscoveryDictionary.DEFAULT_PROPERTIES_FILENAME}, null)); 
     75                                                        new Object[]{NdgDictionary.DEFAULT_PROPERTIES_FILENAME}, null)); 
    7776                } 
    7877                return dataSource; 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/java/ndg/services/discovery/DiscoveryServiceMEDINSkeleton.java

    r6511 r6599  
    1212import ndg.services.discovery.exception.DiscoveryWSException; 
    1313import ndg.services.discovery.medin.DiscoveryDictionary; 
     14import ndg.services.discovery.medin.DoPresentDocument; 
     15import ndg.services.discovery.medin.DoPresentReturnDocument; 
     16import ndg.services.discovery.medin.DoSearchDocument; 
     17import ndg.services.discovery.medin.DoSearchReturnDocument; 
     18import ndg.services.discovery.medin.GetListDocument; 
     19import ndg.services.discovery.medin.GetListNamesDocument; 
     20import ndg.services.discovery.medin.GetListNamesReturnDocument; 
     21import ndg.services.discovery.medin.GetListNamesReturnType; 
     22import ndg.services.discovery.medin.GetListReturnDocument; 
     23import ndg.services.discovery.medin.GetListReturnType; 
     24import ndg.services.discovery.medin.GetListType; 
     25import ndg.services.discovery.medin.OrderByType; 
     26import ndg.services.discovery.medin.OrderingMetricType; 
     27import ndg.services.discovery.medin.PresentReturnType; 
     28import ndg.services.discovery.medin.ReturnBriefType; 
     29import ndg.services.discovery.medin.ReturnFullType; 
     30import ndg.services.discovery.medin.ReturnSummaryType; 
     31import ndg.services.discovery.medin.SearchReturnType; 
     32import ndg.services.discovery.medin.SearchType; 
    1433import ndg.services.discovery.medin.DiscoveryDictionary.OrderByField; 
    1534import ndg.services.discovery.medin.DiscoveryDictionary.RecordDetail; 
     
    2140import org.apache.xmlbeans.XmlString; 
    2241 
    23 import discoveryserviceapi.DoPresentDocument; 
    24 import discoveryserviceapi.DoPresentReturnDocument; 
    25 import discoveryserviceapi.DoSearchDocument; 
    26 import discoveryserviceapi.DoSearchReturnDocument; 
    27 import discoveryserviceapi.GetListDocument; 
    28 import discoveryserviceapi.GetListReturnDocument; 
    29 import discoveryserviceapi.GetListReturnType; 
    30 import discoveryserviceapi.OrderByType; 
    31 import discoveryserviceapi.OrderingMetricType; 
    32 import discoveryserviceapi.PresentReturnType; 
    33 import discoveryserviceapi.ReturnBriefType; 
    34 import discoveryserviceapi.ReturnFullType; 
    35 import discoveryserviceapi.ReturnSummaryType; 
    36 import discoveryserviceapi.SearchReturnType; 
    37 import discoveryserviceapi.SearchType; 
     42 
    3843 
    3944/** 
     
    103108        public static final String EPSG4326_SPATIALREFERENCESYSTEM = "EPSG:4326"; 
    104109 
    105         // Terms for : DateRangeTargetList 
    106         /* 
    107          * public static final String TEMPORALCOVERAGE_DATERANGETARGET = 
    108          * "TemporalCoverage"; public static final String 
    109          * LASTREVISIONDATE_DATERANGETARGET = "LastRevisionDate"; public static 
    110          * final String DISCOVERYINGESTDATE_DATERANGETARGET = "DiscoveryIngestDate"; 
    111          */ 
    112         // Terms for : TemporalOperatorList 
    113         /* 
    114          * public static final String EQUALS_TEMPORALOPERATOR = "Equals"; public 
    115          * static final String DOESNOTEQUAL_TEMPORALOPERATOR = "DoesNotEqual"; 
    116          * public static final String ONORBEFORE_TEMPORALOPERATOR = "OnOrBefore"; 
    117          * public static final String ONORAFTER_TEMPORALOPERATOR = "OnOrAfter"; 
    118          * public static final String BEFORE_TEMPORALOPERATOR = "Before"; public 
    119          * static final String AFTER_TEMPORALOPERATOR = "After"; 
    120          */ 
    121  
    122110        // Terms for : MetadataFormatList 
    123111 
     
    148136         * use as input to the getList service 
    149137         *  
    150          * @param discoveryserviceapi 
     138         * @param ndg.services.discovery.medin.generated 
    151139         *            .GetListNamesDocument containing request 
    152          * @return discoveryserviceapi.GetListNamesReturnDocument containing result 
     140         * @return ndg.services.discovery.medin.generated.GetListNamesReturnDocument containing result 
    153141         */ 
    154         public discoveryserviceapi.GetListNamesReturnDocument getListNames( 
    155                         discoveryserviceapi.GetListNamesDocument getListNames) { 
     142        public GetListNamesReturnDocument getListNames( 
     143                        GetListNamesDocument getListNames) { 
    156144                // TODO : fill this with the necessary business logic 
    157145                // throw new java.lang.UnsupportedOperationException("Please implement " 
     
    159147 
    160148                /*--- Generated by WSDL2Code, DO NOT TOUCH ---*/ 
    161                 discoveryserviceapi.GetListNamesReturnDocument response = discoveryserviceapi.GetListNamesReturnDocument.Factory 
     149                GetListNamesReturnDocument response = GetListNamesReturnDocument.Factory 
    162150                                .newInstance(); 
    163                 discoveryserviceapi.GetListNamesReturnType responseContent = response.addNewGetListNamesReturn(); 
    164                 discoveryserviceapi.GetListNamesReturnType.ListNames listNames = responseContent.addNewListNames(); 
     151                GetListNamesReturnType responseContent = response.addNewGetListNamesReturn(); 
     152                GetListNamesReturnType.ListNames listNames = responseContent.addNewListNames(); 
    165153                /*--- Generated by WSDL2Code, DO NOT TOUCH ---*/ 
    166154 
     
    312300         * Performs the getList operation 
    313301         *  
    314          * @param discoveryserviceapi 
     302         * @param ndg.services.discovery.medin.generated 
    315303         *            .GetListDocument containing request 
    316          * @return discoveryserviceapi.GetListReturnDocument containing result 
     304         * @return ndg.services.discovery.medin.generated.GetListReturnDocument containing result 
    317305         * @throws DiscoveryWSException 
    318306         */ 
     
    325313 
    326314                // parse the request message 
    327                 discoveryserviceapi.GetListType requestContent = request.getGetList(); 
     315                GetListType requestContent = request.getGetList(); 
    328316                 
    329317                String listName = requestContent.getListName().trim(); 
     
    396384        /** 
    397385         * Prepare an INSERT sql statement taking variables from available 
    398          * discoveryserviceapi.SearchType 
     386         * ndg.services.discovery.medin.generated.SearchType 
    399387         *  
    400388         * @param requestContent 
    401          *            - discoveryserviceapi.SearchType 
     389         *            - ndg.services.discovery.medin.generated.SearchType 
    402390         *  
    403391         * @return String : sql insert statement 
     
    405393        /* 
    406394         * public static String 
    407          * recordSearchParamsToLog(discoveryserviceapi.SearchType 
     395         * recordSearchParamsToLog(ndg.services.discovery.medin.generated.SearchType 
    408396         * requestContentToLog, Integer numHits, String thisSessionID) { 
    409397         *  
     
    501489                                fullType.setDocument(result.getOriginalDocument()); 
    502490                                fullType.setAbstract(result.getDatasetAbstract()); 
    503                                 documentType = fullType; 
     491                                documentType = fullType;                                                         
    504492                        } 
    505493                        if (type.equals(DiscoveryDictionary.RecordDetail.DocumentSummary)) { 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/java/ndg/services/discovery/medin/DiscoveryBasic.java

    r6511 r6599  
    99 
    1010import ndg.common.MessageFormatter; 
     11import ndg.common.NdgDictionary; 
    1112import ndg.common.NdgMessage; 
    1213import ndg.common.db.NdgBasicDataSource; 
     
    8283                if (configurationProperties == null) { 
    8384                        InputStream in = this.getClass().getClassLoader().getResourceAsStream( 
    84                                         DiscoveryDictionary.DEFAULT_PROPERTIES_FILENAME); 
     85                                        NdgDictionary.DEFAULT_PROPERTIES_FILENAME); 
    8586                        try { 
    8687                                loadConfigurationStream(in); 
     
    8889                                throw new ResourceNotAvailable(getFormatter().getFormattedText( 
    8990                                                new NdgMessage("config.not.loaded.error", 
    90                                                                 new Object[] { DiscoveryDictionary.DEFAULT_PROPERTIES_FILENAME }))); 
     91                                                                new Object[] { NdgDictionary.DEFAULT_PROPERTIES_FILENAME }))); 
    9192                        } 
    9293                } 
     
    9798                ResourceBundle bundle = null; 
    9899                try { 
    99                         bundle = ResourceBundle.getBundle(DiscoveryDictionary.RESOURCE_BUNDLE); 
     100                        bundle = ResourceBundle.getBundle(NdgDictionary.RESOURCE_BUNDLE); 
    100101                } catch (MissingResourceException ex) { 
    101102                        logger.error("No resource bundle could be found!"); 
     
    108109                        throw new ResourceNotAvailable(getFormatter().getFormattedText( 
    109110                                        new NdgMessage("config.not.found.error", 
    110                                                         new Object[] { DiscoveryDictionary.DEFAULT_PROPERTIES_FILENAME }))); 
     111                                                        new Object[] { NdgDictionary.DEFAULT_PROPERTIES_FILENAME }))); 
    111112                configurationProperties = new Properties(); 
    112113                try { 
     
    120121                if (dataSource == null) { 
    121122                        try { 
    122                                 if (getConfigurationProperties().containsKey(DiscoveryDictionary.DISCOVERY_DB_JNDI)) { 
     123                                if (getConfigurationProperties().containsKey(NdgDictionary.DISCOVERY_DB_JNDI)) { 
    123124                                        dataSource = new NdgBasicDataSource(getConfigurationProperties().getProperty( 
    124                                                         DiscoveryDictionary.DISCOVERY_DB_JNDI)); 
     125                                                        NdgDictionary.DISCOVERY_DB_JNDI)); 
    125126                                } else { 
    126127                                        tryManualConfiguration(); 
     
    134135         
    135136        private void tryManualConfiguration() throws ResourceNotAvailable{ 
    136                 if (getConfigurationProperties().containsKey(DiscoveryDictionary.JDBC_URI)) { 
     137                if (getConfigurationProperties().containsKey(NdgDictionary.JDBC_URI)) { 
    137138                        dataSource = new NdgBasicDataSource(getConfigurationProperties().getProperty( 
    138                                         DiscoveryDictionary.JDBC_URI), getConfigurationProperties().getProperty( 
    139                                         DiscoveryDictionary.JDBC_DRIVER), getConfigurationProperties().getProperty( 
    140                                         DiscoveryDictionary.JDBC_USERNAME), getConfigurationProperties().getProperty( 
    141                                         DiscoveryDictionary.JDBC_PSW)); 
     139                                        NdgDictionary.JDBC_URI), getConfigurationProperties().getProperty( 
     140                                        NdgDictionary.JDBC_DRIVER), getConfigurationProperties().getProperty( 
     141                                        NdgDictionary.JDBC_USERNAME), getConfigurationProperties().getProperty( 
     142                                        NdgDictionary.JDBC_PSW)); 
    142143                } 
    143144        } 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/java/ndg/services/discovery/medin/DiscoveryDictionary.java

    r6511 r6599  
    77 
    88import ndg.services.jpa.OriginalDocument; 
    9 import discoveryserviceapi.PresentReturnType; 
    10 import discoveryserviceapi.ReturnFullType; 
    11 import discoveryserviceapi.ReturnSummaryType; 
    12 import discoveryserviceapi.SearchReturnType; 
    13  
    14  
     9 
     10/** 
     11 * Contains all the enum used in the MEDIN service 
     12 *  
     13 * @author Maurizio Nagni <maurizio.nagni@stcf.ac.uk> 
     14 * */ 
    1515public final class DiscoveryDictionary { 
    1616 
    17         /** The name of the global configuration file*/ 
    18         public final static String DEFAULT_PROPERTIES_FILENAME = "service.properties"; 
    19          
    20         /** The name of the class containing the application messages*/ 
    21         public final static String RESOURCE_BUNDLE = "messages";         
    22          
    23         /** The parameters related to the datasource connection */       
    24         public final static String JDBC_URI = "jdbc.uri";        
    25         public final static String JDBC_DRIVER = "jdbc.driver";  
    26         public final static String JDBC_USERNAME = "jdbc.username";      
    27         public final static String JDBC_PSW = "jdbc.password"; 
    28          
    29         /** JNDI connection */ 
    30         public final static String DISCOVERY_DB_JNDI = "jndi.discoveryDB"; 
    31          
    3217        public static enum TermTarget { 
    3318                FullText("document_ts_vector", "FullText"), 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/java/ndg/services/discovery/model/PresentAgent.java

    r6511 r6599  
    8888        private String assembleRetrieve(List<String> documentsId, RecordDetail type) { 
    8989 
    90                 StringBuffer sqlCmd = new StringBuffer("SELECT "); 
     90                StringBuffer sqlCmd = new StringBuffer("SELECT o.originalDocumentFilename from OriginalDocument where m."); 
    9191 
    9292                /** all the IFs should be revisited */ 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/java/ndg/services/discovery/model/SearchAgent.java

    r6511 r6599  
    1212import ndg.common.exception.NdgSQLException; 
    1313import ndg.common.exception.ResourceNotAvailable; 
     14import ndg.services.discovery.medin.DateRangeType; 
     15import ndg.services.discovery.medin.DateValueType; 
    1416import ndg.services.discovery.medin.DiscoveryBasic; 
    1517import ndg.services.discovery.medin.DiscoveryDictionary; 
     18import ndg.services.discovery.medin.OrderByType; 
     19import ndg.services.discovery.medin.SearchType; 
     20import ndg.services.discovery.medin.TemporalType; 
     21import ndg.services.discovery.medin.TermSearchType; 
    1622import ndg.services.discovery.medin.DiscoveryDictionary.TemporalOperator; 
     23import ndg.services.discovery.medin.SearchType.SearchCriteria; 
    1724import ndg.services.jpa.OriginalDocument; 
    1825 
    1926import org.apache.log4j.Logger; 
    2027 
    21 import discoveryserviceapi.DateRangeType; 
    22 import discoveryserviceapi.DateValueType; 
    23 import discoveryserviceapi.OrderByType; 
    24 import discoveryserviceapi.SearchType; 
    25 import discoveryserviceapi.TemporalType; 
    26 import discoveryserviceapi.TermSearchType; 
    27 import discoveryserviceapi.SearchType.SearchCriteria; 
     28 
    2829 
    2930/** 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/resources/META-INF/Discovery.wsdl

    r6504 r6599  
    11<?xml version="1.0" encoding="UTF-8"?> 
    2 <!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Matt Pritchard (NERC Earth Observation Data Centre) --> 
    3 <wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:tns1="urn:DiscoveryServiceAPI" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:DiscoveryServiceAPI"> 
     2        <!-- 
     3                edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Matt 
     4                Pritchard (NERC Earth Observation Data Centre) 
     5        --> 
     6<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" 
     7        xmlns:tns1="http://medin.discovery.services.ndg/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
     8        xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     9        targetNamespace="http://medin.discovery.services.ndg/"> 
    410        <wsdl:types> 
    5         <xs:schema targetNamespace="urn:DiscoveryServiceAPI" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:DiscoveryServiceAPI" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:tns1="urn:DiscoveryServiceAPI" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    6         <!-- Request elements --> 
    7         <xs:element name="DoSearch" type="tns:SearchType"/> 
    8         <xs:element name="DoPresent" type="tns:PresentType"/> 
    9         <xs:element name="GetListNames" nillable="true"/> 
    10         <xs:element name="GetList" type="tns:GetListType"/> 
    11         <xs:complexType name="GetVersion"/> 
    12         <!-- Response elements --> 
    13         <xs:element name="DoSearchReturn" type="tns:SearchReturnType"/> 
    14         <xs:element name="DoPresentReturn" type="tns:PresentReturnType"/> 
    15         <xs:element name="GetListNamesReturn" type="tns:GetListNamesReturnType"/> 
    16         <xs:element name="GetListReturn" type="tns:GetListReturnType"/> 
    17         <xs:complexType name="GetVersionReturn"> 
    18                 <xs:complexContent> 
    19                         <xs:extension base="tns:GetVersionReturnType"/> 
    20                 </xs:complexContent> 
    21         </xs:complexType> 
    22         <!-- Request global types --> 
    23         <xs:complexType name="PresentType"> 
    24                 <xs:sequence> 
    25                         <xs:element name="Documents" minOccurs="0"> 
    26                                 <xs:complexType> 
    27                                         <xs:complexContent> 
    28                                                 <xs:extension base="tns:DocumentsType"> 
    29                                                         <xs:sequence> 
    30                                                                 <xs:element ref="tns:DocumentId" maxOccurs="unbounded"/> 
    31                                                         </xs:sequence> 
    32                                                 </xs:extension> 
    33                                         </xs:complexContent> 
    34                                 </xs:complexType> 
    35                         </xs:element> 
    36                         <xs:element name="Format" type="xs:string" minOccurs="0"> 
    37                                 <xs:annotation> 
    38                                         <xs:documentation>Required presentation format, value taken from presentFormatList.</xs:documentation> 
    39                                 </xs:annotation> 
    40                         </xs:element> 
    41                 </xs:sequence> 
    42         </xs:complexType> 
    43         <xs:complexType name="SearchType"> 
    44                 <xs:sequence> 
    45                         <xs:element name="SearchCriteria"> 
    46                                 <xs:annotation> 
    47                                         <xs:documentation>Must have at least one of : termSearch, spatialSearch, temporalSearch.</xs:documentation> 
    48                                 </xs:annotation> 
    49                                 <xs:complexType> 
    50                                         <xs:sequence> 
    51                                                 <xs:element name="TermSearch" type="tns:TermSearchType" minOccurs="0" maxOccurs="unbounded"> 
    52                                                         <xs:annotation> 
    53                                                                 <xs:documentation>Can have multiple term searches - will treat multiple termSearches in "AND" combination, unless multiple instances of same termTarget, in which case "OR" combination is used for those with the same termTarget.</xs:documentation> 
    54                                                         </xs:annotation> 
    55                                                 </xs:element> 
    56                                                 <xs:element name="SpatialSearch" type="tns:SpatialType" minOccurs="0"> 
    57                                                         <xs:annotation> 
    58                                                                 <xs:documentation>Comparison of a single search bounding box to spatial coverage(s) of data.</xs:documentation> 
    59                                                         </xs:annotation> 
    60                                                 </xs:element> 
    61                                                 <xs:element name="TemporalSearch" type="tns:TemporalType" minOccurs="0"> 
    62                                                         <xs:annotation> 
    63                                                                 <xs:documentation>Comparison of a date or date range to specified/default dates within metadata.</xs:documentation> 
    64                                                         </xs:annotation> 
    65                                                 </xs:element> 
    66                                         </xs:sequence> 
    67                                 </xs:complexType> 
    68                         </xs:element> 
    69                         <xs:element name="Start" type="xs:unsignedInt" minOccurs="0"> 
    70                                 <xs:annotation> 
    71                                         <xs:documentation>Sequential record number within result set used as first record within returned search response. Useful for pagination.</xs:documentation> 
    72                                 </xs:annotation> 
    73                         </xs:element> 
    74                         <xs:element name="HowMany" type="xs:unsignedInt" minOccurs="0"> 
    75                                 <xs:annotation> 
    76                                         <xs:documentation>How many records from result set to include in search response.</xs:documentation> 
    77                                 </xs:annotation> 
    78                         </xs:element> 
    79                         <xs:element name="OrderBy" type="tns:OrderByType" minOccurs="0" maxOccurs="unbounded"> 
    80                                 <xs:annotation> 
    81                                         <xs:documentation>Optional set of field(s) by which to order records in the result set and hence the search response. Direction can be specified alongside each field.</xs:documentation> 
    82                                 </xs:annotation> 
    83                         </xs:element> 
    84                         <xs:element name="Scope" type="xs:string" minOccurs="0" maxOccurs="unbounded"> 
    85                                 <xs:annotation> 
    86                                         <xs:documentation>Optional term used to restrict search to records tagged with a data provider "scope" as listed in scopeList.</xs:documentation> 
    87                                 </xs:annotation> 
    88                         </xs:element> 
    89                         <xs:element name="Format" type="xs:string" minOccurs="0"> 
    90                                 <xs:annotation> 
    91                                         <xs:documentation>restrict records to specific original input formats. </xs:documentation> 
    92                                 </xs:annotation> 
    93                         </xs:element> 
    94                         <xs:element name="RecordDetail" type="xs:string" minOccurs="0"> 
    95                                 <xs:annotation> 
    96                                         <xs:documentation>Level of detail to be used for each record in the search response (before initiating doPresent). Values taken from recordDetailList. Default = "id", i.e. just the document id.</xs:documentation> 
    97                                 </xs:annotation> 
    98                         </xs:element> 
    99                 </xs:sequence> 
    100         </xs:complexType> 
    101         <xs:complexType name="GetListType"> 
    102                 <xs:sequence> 
    103                         <xs:element name="listName" type="xs:string"/> 
    104                 </xs:sequence> 
    105         </xs:complexType> 
    106         <!-- Response global types --> 
    107         <xs:complexType name="PresentReturnType"> 
    108                 <xs:sequence> 
    109                         <xs:element name="Status" type="xs:boolean"/>"RecordDetail"  
    110                         <xs:element name="StatusMessage" type="xs:string"/> 
    111                         <xs:element name="Documents" minOccurs="0"> 
    112                                 <xs:complexType> 
    113                                         <xs:complexContent> 
    114                                                 <xs:extension base="tns:DocumentReturnType"> 
    115                                                         <xs:sequence> 
    116                                                                 <xs:element name="DocumentFull" type="tns:ReturnFullType" maxOccurs="unbounded"/> 
    117                                                         </xs:sequence> 
    118                                                 </xs:extension> 
    119                                         </xs:complexContent> 
    120                                 </xs:complexType> 
    121                         </xs:element> 
    122                 </xs:sequence> 
    123         </xs:complexType> 
    124         <xs:complexType name="SearchReturnType"> 
    125                 <xs:sequence> 
    126                         <xs:element name="Status" type="xs:boolean"/> 
    127                         <xs:element name="StatusMessage" type="xs:string"/> 
    128                         <xs:element name="ResultId" type="xs:int" minOccurs="0"/> 
    129                         <xs:element name="Hits" type="xs:int" minOccurs="0"/> 
    130                         <xs:element name="Documents" minOccurs="0"> 
    131                                 <xs:complexType> 
    132                                         <xs:complexContent> 
    133                                                 <xs:extension base="tns:DocumentsType"> 
    134                                                         <xs:choice> 
    135                                                                 <xs:sequence> 
    136                                                                         <xs:element ref="tns:DocumentId" maxOccurs="unbounded"/> 
    137                                                                 </xs:sequence>                                                           
    138                                                                 <xs:sequence> 
    139                                                                         <xs:element name="DocumentFull" type="tns:ReturnFullType" maxOccurs="unbounded"/> 
    140                                                                 </xs:sequence> 
    141                                                                 <xs:sequence> 
    142                                                                         <xs:element name="DocumentBrief" type="tns:ReturnBriefType" maxOccurs="unbounded"/> 
    143                                                                 </xs:sequence> 
    144                                                                 <xs:sequence> 
    145                                                                         <xs:element name="DocumentSummary" type="tns:ReturnSummaryType" maxOccurs="unbounded"/> 
    146                                                                 </xs:sequence> 
    147                                                         </xs:choice> 
    148                                                 </xs:extension> 
    149                                         </xs:complexContent> 
    150                                 </xs:complexType> 
    151                         </xs:element> 
    152                 </xs:sequence> 
    153         </xs:complexType> 
    154         <xs:complexType name="GetListNamesReturnType"> 
    155                 <xs:sequence maxOccurs="unbounded"> 
    156                         <xs:element name="listNames"> 
    157                                 <xs:complexType> 
    158                                         <xs:sequence> 
    159                                                 <xs:element name="listName" type="xs:string" maxOccurs="unbounded"/> 
    160                                         </xs:sequence> 
    161                                 </xs:complexType> 
    162                         </xs:element> 
    163                 </xs:sequence> 
    164         </xs:complexType> 
    165         <xs:complexType name="GetListReturnType"> 
    166                 <xs:sequence> 
    167                         <xs:element name="list" minOccurs="0"> 
    168                                 <xs:complexType> 
    169                                         <xs:sequence> 
    170                                                 <xs:element name="listMember" type="xs:string" maxOccurs="unbounded"/> 
    171                                         </xs:sequence> 
    172                                         <xs:attribute name="name" type="xs:string" use="required"/> 
    173                                 </xs:complexType> 
    174                         </xs:element> 
    175                 </xs:sequence> 
    176         </xs:complexType> 
    177         <!-- Other global types--> 
    178         <xs:complexType name="BoundingBoxType"> 
    179                 <xs:all> 
    180                         <xs:element name="LimitNorth" type="xs:float"/> 
    181                         <xs:element name="LimitSouth" type="xs:float"/> 
    182                         <xs:element name="LimitWest" type="xs:float"/> 
    183                         <xs:element name="LimitEast" type="xs:float"/> 
    184                 </xs:all> 
    185         </xs:complexType> 
    186         <xs:complexType name="DateRangeType"> 
    187                 <xs:sequence> 
    188                         <xs:element name="Date" type="tns:DateValueType" maxOccurs="2"> 
    189                                 <xs:annotation> 
    190                                         <xs:documentation>Single date, or pair of dates representing a date range, to be used in search against specified date target in metadata.</xs:documentation> 
    191                                 </xs:annotation> 
    192                         </xs:element> 
    193                         <xs:element name="DateRangeTarget" type="xs:string" minOccurs="0"> 
    194                                 <xs:annotation> 
    195                                         <xs:documentation>Target date to which date search should be applied (e.g. temporal coverage of data, date of publication). Value to be chosen from dateRangeTargetList. Default = temporalCoverage.</xs:documentation> 
    196                                 </xs:annotation> 
    197                         </xs:element> 
    198                 </xs:sequence> 
    199         </xs:complexType> 
    200         <xs:complexType name="DocumentsType"/> 
    201         <xs:simpleType name="OrderByDirectionType"> 
    202                 <xs:restriction base="xs:string"> 
    203                         <xs:enumeration value="ascending"/> 
    204                         <xs:enumeration value="descending"/> 
    205                 </xs:restriction> 
    206         </xs:simpleType> 
    207         <xs:complexType name="SpatialType"> 
    208                 <xs:sequence> 
    209                         <xs:element name="BoundingBox" type="tns:BoundingBoxType"> 
    210                                 <xs:annotation> 
    211                                         <xs:documentation>Bounding box with coordinates by default in EPSG:4326 (lat/lon)</xs:documentation> 
    212                                 </xs:annotation> 
    213                         </xs:element> 
    214                         <xs:element name="SpatialOperator" type="xs:string" minOccurs="0"> 
    215                                 <xs:annotation> 
    216                                         <xs:documentation>Operator used to compare search bounding box with spatial coverage in metadata. Values from spatialOperatorList. Default is "overlaps".</xs:documentation> 
    217                                 </xs:annotation> 
    218                         </xs:element> 
    219                         <xs:element name="SpatialReferenceSystem" minOccurs="0"> 
    220                                 <xs:annotation> 
    221                                         <xs:documentation>Spatial reference system used for search bounding box e.g. EPSG:4326, taken from list spatialReferenceSystemList</xs:documentation> 
    222                                 </xs:annotation> 
    223                         </xs:element> 
    224                 </xs:sequence> 
    225         </xs:complexType> 
    226         <xs:complexType name="TermSearchType"> 
    227                 <xs:sequence> 
    228                         <xs:element name="Term" type="xs:string"> 
    229                                 <xs:annotation> 
    230                                         <xs:documentation>String(s) used in search. Whitespace between strings interpreted as OR combinations of those strings, unless "+" used to combine them, in which case AND combination.</xs:documentation> 
    231                                 </xs:annotation> 
    232                         </xs:element> 
    233                         <xs:element name="TermTarget" type="xs:string" minOccurs="0" maxOccurs="1"> 
    234                                 <xs:annotation> 
    235                                         <xs:documentation>Metadata field used as target for search. From list termTargetList</xs:documentation> 
    236                                 </xs:annotation> 
    237                         </xs:element> 
    238                 </xs:sequence> 
    239         </xs:complexType> 
    240         <xs:complexType name="TemporalType"> 
    241                 <xs:sequence> 
    242                         <xs:element name="DateRange" type="tns:DateRangeType"> 
    243                                 <xs:annotation> 
    244                                         <xs:documentation>Specify start or end date, or both, along with target date field within metadata.</xs:documentation> 
    245                                 </xs:annotation> 
    246                         </xs:element> 
    247                 </xs:sequence> 
    248         </xs:complexType> 
    249         <xs:complexType name="DocumentReturnType"/> 
    250         <xs:complexType name="OrderingMetricType"> 
    251                 <xs:annotation> 
    252                         <xs:documentation>Intented to allow passing of ordering information at the present level</xs:documentation> 
    253                 </xs:annotation> 
    254                 <xs:sequence> 
    255                         <xs:element name="MetricName" type="xs:string"/> 
    256                         <xs:element name="MetricValue" type="xs:string" minOccurs="0"> 
    257                                 <xs:annotation> 
    258                                         <xs:documentation>Specific value of the metric when used in a 1:1 context with a document return</xs:documentation> 
    259                                 </xs:annotation>ndg.noc.soton.ac.uk__DIF__ndg.noc.soton.ac.uk__DIF__NOCSDAT187.xml 
    260                         </xs:element> 
    261                 </xs:sequence> 
    262         </xs:complexType> 
    263         <xs:complexType name="DateValueType"> 
    264                 <xs:sequence> 
    265                         <xs:element name="DateValue" type="xs:date"/> 
    266                         <xs:element name="TemporalOperator" type="xs:string" minOccurs="0"> 
    267                                 <xs:annotation> 
    268                                         <xs:documentation>Comparison operator taken from temporalOperatorList. Default = "equals"</xs:documentation> 
    269                                 </xs:annotation> 
    270                         </xs:element> 
    271                 </xs:sequence> 
    272         </xs:complexType> 
    273         <xs:complexType name="OrderByType"> 
    274                 <xs:sequence> 
    275                         <xs:element name="OrderByField" type="xs:string"> 
    276                                 <xs:annotation> 
    277                                         <xs:documentation>Field to use for ordering within result set (and hence search response). Value taken from orderByFieldList</xs:documentation> 
    278                                 </xs:annotation> 
    279                         </xs:element> 
    280                         <xs:element name="OrderByDirection" type="tns:OrderByDirectionType" minOccurs="0"> 
    281                                 <xs:annotation> 
    282                                         <xs:documentation>Direction of ordering used in result set and hence search response. Valid values : "ascending" or "descending". Default is descending.</xs:documentation> 
    283                                 </xs:annotation> 
    284                         </xs:element> 
    285                 </xs:sequence> 
    286         </xs:complexType> 
    287         <xs:element name="DocumentId" type="xs:string"/> 
    288         <xs:complexType name="ReturnBriefType"> 
    289                 <xs:complexContent> 
    290                         <xs:extension base="tns:DocumentsType"> 
    291                                 <xs:sequence> 
    292                                         <xs:element ref="tns:DocumentId"/> 
    293                                         <xs:element name="Title" type="xs:string" minOccurs="0"/> 
    294                                         <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded"> 
    295                                                 <xs:annotation> 
    296                                                         <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation> 
    297                                                 </xs:annotation> 
    298                                         </xs:element> 
    299                                 </xs:sequence> 
    300                         </xs:extension> 
    301                 </xs:complexContent> 
    302         </xs:complexType> 
    303         <xs:complexType name="ReturnSummaryType"> 
    304                 <xs:complexContent> 
    305                         <xs:extension base="tns:DocumentsType"> 
    306                                 <xs:sequence> 
    307                                         <xs:element ref="tns:DocumentId"/> 
    308                                         <xs:element name="Title" type="xs:string" minOccurs="0"/> 
    309                                         <xs:element name="Abstract" type="xs:string" minOccurs="0"/> 
    310                                         <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded"> 
    311                                                 <xs:annotation> 
    312                                                         <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation> 
    313                                                 </xs:annotation> 
    314                                         </xs:element> 
    315                                         <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/> 
    316                                         <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/> 
    317                                 </xs:sequence> 
    318                         </xs:extension> 
    319                 </xs:complexContent> 
    320         </xs:complexType> 
    321         <xs:complexType name="ReturnFullType"> 
    322                 <xs:complexContent> 
    323                         <xs:extension base="tns:DocumentsType"> 
    324                                 <xs:sequence> 
    325                                         <xs:element ref="tns:DocumentId"/> 
    326                                         <xs:element name="Title" type="xs:string" minOccurs="0"/> 
    327                                         <xs:element name="Abstract" type="xs:string" minOccurs="0"/> 
    328                                         <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded"> 
    329                                                 <xs:annotation> 
    330                                                         <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation> 
    331                                                 </xs:annotation> 
    332                                         </xs:element> 
    333                                         <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/> 
    334                                         <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/> 
    335                                         <xs:element name="Document" type="xs:string"> 
    336                                                 <xs:annotation> 
    337                                                         <xs:documentation>CDATA content of returned XML document.</xs:documentation> 
    338                                                 </xs:annotation> 
    339                                         </xs:element> 
    340                                 </xs:sequence> 
    341                         </xs:extension> 
    342                 </xs:complexContent> 
    343         </xs:complexType> 
    344         <xs:complexType name="GetVersionReturnType"> 
    345                 <xs:sequence> 
    346                         <xs:element name="Version" type="xs:string"/> 
    347                         <xs:element name="Comment" type="xs:string"/> 
    348                 </xs:sequence> 
    349         </xs:complexType> 
    350 </xs:schema> 
     11                <xsd:schema> 
     12                        <xsd:import namespace="http://medin.discovery.services.ndg/" 
     13                                schemaLocation="DiscoverySchema.xsd" /> 
     14                </xsd:schema> 
    35115        </wsdl:types> 
    35216        <wsdl:message name="doSearchRequest"> 
    353                 <wsdl:part name="part" element="tns1:DoSearch"/> 
     17                <wsdl:part name="part" element="tns1:DoSearch" /> 
    35418        </wsdl:message> 
    35519        <wsdl:message name="doSearchResponse"> 
    356                 <wsdl:part name="part" element="tns1:DoSearchReturn"/> 
     20                <wsdl:part name="part" element="tns1:DoSearchReturn" /> 
    35721        </wsdl:message> 
    35822        <wsdl:message name="getListNamesRequest"> 
    359                 <wsdl:part name="part" element="tns1:GetListNames"/> 
     23                <wsdl:part name="part" element="tns1:GetListNames" /> 
    36024        </wsdl:message> 
    36125        <wsdl:message name="getListRequest"> 
    362                 <wsdl:part name="part" element="tns1:GetList"/> 
     26                <wsdl:part name="part" element="tns1:GetList" /> 
    36327        </wsdl:message> 
    36428        <wsdl:message name="doPresentRequest"> 
    365                 <wsdl:part name="part" element="tns1:DoPresent"/> 
     29                <wsdl:part name="part" element="tns1:DoPresent" /> 
    36630        </wsdl:message> 
    36731        <wsdl:message name="doPresentResponse"> 
    368                 <wsdl:part name="part" element="tns1:DoPresentReturn"/> 
     32                <wsdl:part name="part" element="tns1:DoPresentReturn" /> 
    36933        </wsdl:message> 
    37034        <wsdl:message name="getListNamesResponse"> 
    371                 <wsdl:part name="part" element="tns1:GetListNamesReturn"/> 
     35                <wsdl:part name="part" element="tns1:GetListNamesReturn" /> 
    37236        </wsdl:message> 
    37337        <wsdl:message name="getListResponse"> 
    374                 <wsdl:part name="part" element="tns1:GetListReturn"/> 
     38                <wsdl:part name="part" element="tns1:GetListReturn" /> 
    37539        </wsdl:message> 
    37640        <wsdl:portType name="Discovery"> 
    37741                <wsdl:operation name="doSearch"> 
    378                         <wsdl:input name="doSearchRequest" message="tns1:doSearchRequest"/> 
    379                         <wsdl:output name="doSearchResponse" message="tns1:doSearchResponse"/> 
     42                        <wsdl:input name="doSearchRequest" message="tns1:doSearchRequest" /> 
     43                        <wsdl:output name="doSearchResponse" message="tns1:doSearchResponse" /> 
    38044                </wsdl:operation> 
    38145                <wsdl:operation name="doPresent"> 
    382                         <wsdl:input name="doPresentRequest" message="tns1:doPresentRequest"/> 
    383                         <wsdl:output name="doPresentResponse" message="tns1:doPresentResponse"/> 
     46                        <wsdl:input name="doPresentRequest" message="tns1:doPresentRequest" /> 
     47                        <wsdl:output name="doPresentResponse" message="tns1:doPresentResponse" /> 
    38448                </wsdl:operation> 
    38549                <wsdl:operation name="getListNames"> 
    386                         <wsdl:input name="getListNamesRequest" message="tns1:getListNamesRequest"/> 
    387                         <wsdl:output name="getListNamesResponse" message="tns1:getListNamesResponse"/> 
     50                        <wsdl:input name="getListNamesRequest" message="tns1:getListNamesRequest" /> 
     51                        <wsdl:output name="getListNamesResponse" message="tns1:getListNamesResponse" /> 
    38852                </wsdl:operation> 
    38953                <wsdl:operation name="getList"> 
    390                         <wsdl:input name="getListRequest" message="tns1:getListRequest"/> 
    391                         <wsdl:output name="getListResponse" message="tns1:getListResponse"/> 
     54                        <wsdl:input name="getListRequest" message="tns1:getListRequest" /> 
     55                        <wsdl:output name="getListResponse" message="tns1:getListResponse" /> 
    39256                </wsdl:operation> 
    39357        </wsdl:portType> 
    39458        <wsdl:binding name="DiscoverySoapBinding" type="tns1:Discovery"> 
    395                 <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
     59                <wsdlsoap:binding style="document" 
     60                        transport="http://schemas.xmlsoap.org/soap/http" /> 
    39661                <wsdl:operation name="doSearch"> 
    397                         <wsdlsoap:operation/> 
     62                        <wsdlsoap:operation /> 
    39863                        <wsdl:input> 
    399                                 <wsdlsoap:body use="literal"/> 
     64                                <wsdlsoap:body use="literal" /> 
    40065                        </wsdl:input> 
    40166                        <wsdl:output> 
    402                                 <wsdlsoap:body use="literal"/> 
     67                                <wsdlsoap:body use="literal" /> 
    40368                        </wsdl:output> 
    40469                </wsdl:operation> 
    40570                <wsdl:operation name="doPresent"> 
    406                         <wsdlsoap:operation/> 
     71                        <wsdlsoap:operation /> 
    40772                        <wsdl:input> 
    408                                 <wsdlsoap:body use="literal"/> 
     73                                <wsdlsoap:body use="literal" /> 
    40974                        </wsdl:input> 
    41075                        <wsdl:output> 
    411                                 <wsdlsoap:body use="literal"/> 
     76                                <wsdlsoap:body use="literal" /> 
    41277                        </wsdl:output> 
    41378                </wsdl:operation> 
    41479                <wsdl:operation name="getListNames"> 
    415                         <wsdlsoap:operation/> 
     80                        <wsdlsoap:operation /> 
    41681                        <wsdl:input> 
    417                                 <wsdlsoap:body use="literal"/> 
     82                                <wsdlsoap:body use="literal" /> 
    41883                        </wsdl:input> 
    41984                        <wsdl:output> 
    420                                 <wsdlsoap:body use="literal"/> 
     85                                <wsdlsoap:body use="literal" /> 
    42186                        </wsdl:output> 
    42287                </wsdl:operation> 
    42388                <wsdl:operation name="getList"> 
    424                         <wsdlsoap:operation/> 
     89                        <wsdlsoap:operation /> 
    42590                        <wsdl:input> 
    426                                 <wsdlsoap:body use="literal"/> 
     91                                <wsdlsoap:body use="literal" /> 
    42792                        </wsdl:input> 
    42893                        <wsdl:output> 
    429                                 <wsdlsoap:body use="literal"/> 
     94                                <wsdlsoap:body use="literal" /> 
    43095                        </wsdl:output> 
    43196                </wsdl:operation> 
     
    43398        <wsdl:service name="DiscoveryServiceMEDIN"> 
    43499                <wsdl:port name="Discovery" binding="tns1:DiscoverySoapBinding"> 
    435                         <wsdlsoap:address location="http://130.246.189.180/axis2/services/DiscoveryServiceMEDIN"/> 
     100                        <wsdlsoap:address 
     101                                location="http://130.246.189.180/axis2/services/DiscoveryServiceMEDIN" /> 
    436102                </wsdl:port> 
    437103        </wsdl:service> 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/resources/META-INF/DiscoverySchema.xsd

    r6504 r6599  
    11<?xml version="1.0" encoding="UTF-8"?> 
    22<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Steve Donegan (NERC Earth Observation Data Centre) --> 
    3 <xs:schema targetNamespace="urn:DiscoveryServiceAPI" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:DiscoveryServiceAPI" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:tns1="urn:DiscoveryServiceAPI" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     3<xs:schema targetNamespace="http://medin.discovery.services.ndg/" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://medin.discovery.services.ndg/" xmlns:tns1="http://medin.discovery.services.ndg/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    44        <!-- Request elements --> 
    55        <xs:element name="DoSearch" type="tns:SearchType"/> 
Note: See TracChangeset for help on using the changeset viewer.