Changeset 6622


Ignore:
Timestamp:
24/02/10 13:25:12 (10 years ago)
Author:
mnagni
Message:

Minimal changes in the pom (added a deploy repository) and the Skeleton class (fixed one import)

Location:
TI01-discovery-API/trunk/MEDINDiscoveryService
Files:
6 edited

Legend:

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

    r6599 r6622  
    77        <packaging>aar</packaging> 
    88 
     9        <properties> 
     10                <java.version>1.5</java.version> 
     11        </properties> 
    912        <repositories> 
    10                 <repository> 
    11                         <id>Sonatype</id> 
    12                         <url>http://repository.sonatype.org/content/repositories/central</url> 
    13                 </repository> 
    1413        </repositories> 
    15         <pluginRepositories> 
    16                 <pluginRepository> 
    17                         <id>SonatypePlugin</id> 
    18                         <url>http://repository.sonatype.org/content/repositories/central</url> 
    19                 </pluginRepository> 
    20                 <pluginRepository> 
    21                         <id>eviwarePluginRepository</id> 
    22                         <url>http://www.eviware.com/repository/maven2/</url> 
    23                 </pluginRepository> 
    24         </pluginRepositories> 
    25  
    2614 
    2715        <dependencies> 
     
    7866                                <groupId>org.apache.maven.plugins</groupId> 
    7967                                <artifactId>maven-compiler-plugin</artifactId> 
    80                                 <version>2.1</version> 
    8168                                <configuration> 
    82                                         <source>1.5</source> 
    83                                         <target>1.5</target> 
     69                                        <source>${java.version}</source> 
     70                                        <target>${java.version}</target> 
    8471                                </configuration> 
    8572                        </plugin> 
     
    8976                                <groupId>org.apache.axis2</groupId> 
    9077                                <artifactId>axis2-wsdl2code-maven-plugin</artifactId> 
    91                                 <version>1.5.1</version> 
    9278                                <executions> 
    9379                                        <execution> 
     
    142128                        <plugin> 
    143129                                <artifactId>maven-resources-plugin</artifactId> 
    144                                 <version>2.4.1</version> 
    145130                                <executions> 
    146131                                        <execution> 
     
    186171                                <groupId>org.apache.axis2</groupId> 
    187172                                <artifactId>axis2-aar-maven-plugin</artifactId> 
    188                                 <version>1.5.1</version> 
    189173                                <extensions>true</extensions> 
    190174                                <executions> 
     
    197181                                </executions> 
    198182                        </plugin> 
    199 <!-- 
    200                         <plugin> 
    201                                 <groupId>eviware</groupId> 
     183 
     184                        <plugin> 
     185                                <groupId>org.apache.maven.plugins</groupId> 
     186                                <artifactId>maven-install-plugin</artifactId> 
     187                                <configuration> 
     188                                        <createChecksum>true</createChecksum> 
     189                                </configuration> 
     190                        </plugin> 
     191 
     192                        <!-- 
     193                                <plugin> <groupId>eviware</groupId> 
    202194                                <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 --> 
     195                                <version>2.5.1</version> <configuration> 
     196                                <projectFile>${basedir}/src/test/resources/DiscoveryServiceMEDIN-soapui-project.xml</projectFile> 
     197                                <host>130.246.188.102:8080/axis2/services/DiscoveryServiceMEDIN</host> 
     198                                </configuration> </plugin> 
     199                        --> 
    210200 
    211201                </plugins> 
    212202        </build> 
     203 
     204        <distributionManagement> 
     205                <snapshotRepository> 
     206                        <id>local.deploy</id> 
     207                        <name>local-releases</name> 
     208                        <url>http://juliet.badc.rl.ac.uk:8180/artifactory/libs-releases-local</url> 
     209                </snapshotRepository> 
     210        </distributionManagement> 
     211 
     212 
    213213</project> 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/java/ndg/services/discovery/DiscoveryServiceMEDINSkeleton.java

    r6599 r6622  
    1616import ndg.services.discovery.medin.DoSearchDocument; 
    1717import ndg.services.discovery.medin.DoSearchReturnDocument; 
     18import ndg.services.discovery.medin.Documents; 
    1819import ndg.services.discovery.medin.GetListDocument; 
    1920import ndg.services.discovery.medin.GetListNamesDocument; 
     
    2627import ndg.services.discovery.medin.OrderingMetricType; 
    2728import ndg.services.discovery.medin.PresentReturnType; 
     29import ndg.services.discovery.medin.PresentType; 
     30import ndg.services.discovery.medin.RetrieveCriteriaType; 
    2831import ndg.services.discovery.medin.ReturnBriefType; 
    2932import ndg.services.discovery.medin.ReturnFullType; 
     33import ndg.services.discovery.medin.ReturnSimpleType; 
    3034import ndg.services.discovery.medin.ReturnSummaryType; 
    3135import ndg.services.discovery.medin.SearchReturnType; 
    3236import ndg.services.discovery.medin.SearchType; 
     37import ndg.services.discovery.medin.SimpleDocument1; 
    3338import ndg.services.discovery.medin.DiscoveryDictionary.OrderByField; 
    3439import ndg.services.discovery.medin.DiscoveryDictionary.RecordDetail; 
     
    3843 
    3944import org.apache.log4j.Logger; 
    40 import org.apache.xmlbeans.XmlString; 
    4145 
    4246 
     
    5054 
    5155        private static Logger logger = Logger.getLogger(DiscoveryDBException.class.getName()); 
    52  
    53         // Lists to provide according to 
    54         // http://proj.badc.rl.ac.uk/ndg/wiki/Discovery/DiscoveryWebServiceMEDIN#TermLists 
    55         public static final String[] LIST_NAMES = { "TermTargetList", "PresentFormatList", "OrderByFieldList", "ScopeList", 
    56                         "SpatialOperatorList", "SpatialReferenceSystemList", "DateRangeTargetList", "TemporalOperatorList", 
    57                         "MetadataFormatList", "RecordDetailList" }; 
    5856 
    5957        // Constants representing the possible, valid values for the various input 
     
    157155                } 
    158156 
    159                 for (int i = 0; i < LIST_NAMES.length; i++) { 
    160                         listNames.addListName(LIST_NAMES[i]); 
    161                         if (logger.isDebugEnabled()) { 
    162                                 logger.debug("Added name: " + LIST_NAMES[i]); 
    163                         } 
     157                for (DiscoveryDictionary.Names item : DiscoveryDictionary.Names.values()) { 
     158                        listNames.addListName(item.fieldLabel()); 
    164159                } 
    165160 
     
    167162                        logger.info("getListNames() completed successfully"); 
    168163                } 
    169  
    170164                return response; 
    171165 
     
    185179                DoSearchReturnDocument response = DoSearchReturnDocument.Factory.newInstance(); 
    186180                SearchReturnType responseContent = response.addNewDoSearchReturn(); 
    187  
     181                 
    188182                SearchAgent agent = new SearchAgent(doSearch.getDoSearch()); 
    189183                boolean status = false; 
     
    192186                        List<OriginalDocument> result = agent.doSearch(); 
    193187                        SearchType st = doSearch.getDoSearch(); 
    194                         DiscoveryDictionary.RecordDetail type = DiscoveryDictionary.getRecordDetails(st.getRecordDetail()); 
    195                         processResult(result, responseContent.addNewDocuments(), type, st.getOrderByArray()); 
     188                        RetrieveCriteriaType rct = st.getRetrieveCriteria(); 
     189                        DiscoveryDictionary.RecordDetail type = DiscoveryDictionary.getRecordDetails(rct.getRecordDetail()); 
     190                        processResult(result, responseContent.addNewDocuments(), type, rct.getOrderByArray()); 
    196191                        status = (result != null && result.size() > 0 ? true : false); 
    197192                } catch (NdgSQLException e) { 
     
    268263                DoPresentReturnDocument response = DoPresentReturnDocument.Factory.newInstance(); 
    269264                PresentReturnType responseContent = response.addNewDoPresentReturn(); 
    270                  
    271265                boolean status = false; 
    272266                String statusMessage = "Normal"; 
    273267                PresentAgent agent = new PresentAgent(); 
    274268                List<String> documentsId = new ArrayList<String>(); 
    275                 try { 
    276                         String[] docIds = doPresent.getDoPresent().getDocuments().getDocumentIdArray(); 
    277                         if (docIds != null) { 
    278                                 for (String docId : doPresent.getDoPresent().getDocuments().getDocumentIdArray()) { 
    279                                         documentsId.add(docId); 
    280                                 }                                
    281                         } 
    282  
     269                try {                    
     270                        for (SimpleDocument1 doc : doPresent.getDoPresent().getDocumentsArray()) { 
     271                                documentsId.add(doc.getDocumentId()); 
     272                        } 
    283273                        RecordDetail detail = RecordDetail.DocumentFull; 
    284274                        List<OriginalDocument> result = agent.doPresent(null, documentsId, detail); 
     
    453443         */ 
    454444 
    455         private void processResult(List<OriginalDocument> results, PresentReturnType.Documents documents, RecordDetail type, OrderByType[] orderBy) { 
     445        private void processResult(List<OriginalDocument> results, Documents documents, RecordDetail type, OrderByType[] orderBy) { 
    456446                if (results != null && results.size() == 0) 
    457447                        return; 
    458448                for (OriginalDocument result : results) { 
    459                         if (type.equals(DiscoveryDictionary.RecordDetail.DocumentFull)) { 
    460                                 ReturnFullType fullType = documents.addNewDocumentFull();                                
    461                                 fullType.setDocumentId(result.getOriginalDocumentFilename()); 
    462                                 fullType.setTitle(result.getDatasetName()); 
    463                                 fullType.setDocument(result.getOriginalDocument()); 
    464                                 fullType.setAbstract(result.getDatasetAbstract()); 
    465                         } 
    466                 } 
    467         }        
    468          
    469         private void processResult(List<OriginalDocument> results, SearchReturnType.Documents documents, RecordDetail type, OrderByType[] orderBy) { 
    470                 if (results != null && results.size() == 0) 
    471                         return; 
    472                  
    473                 /** all the IFs should be revisited */ 
    474                 for (OriginalDocument result : results) { 
    475  
    476                         if (type.equals(DiscoveryDictionary.RecordDetail.DocumentId)) { 
    477                                 XmlString idType = documents.addNewDocumentId(); 
    478                                 idType.setStringValue(result.getOriginalDocumentFilename()); 
     449                        if (type.equals(DiscoveryDictionary.RecordDetail.DocumentSimple)) { 
     450                                ReturnSimpleType simpleType = documents.addNewDocumentSimple(); 
     451                                simpleType.setDocumentId(result.getOriginalDocumentFilename()); 
    479452                                continue; 
    480453                        } 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/java/ndg/services/discovery/medin/DiscoveryDictionary.java

    r6599 r6622  
    1515public final class DiscoveryDictionary { 
    1616 
     17        public static enum Names { 
     18                TermTarget("TermTarget", "Term Target"), 
     19                PresentFormat("PresentFormat", "Present Format"), 
     20                OrderByField("OrderByField", "Order By Field"), 
     21                Scope("Scope", "Scope"), 
     22                SpatialOperator("SpatialOperator", "Spatial Operator"), 
     23                SpatialReferenceSystem("SpatialReferenceSystem", "Spatial Reference System"), 
     24                DateRangeTarget("DateRangeTarget", "Date Range Target"), 
     25                TemporalOperator("TemporalOperator", "Temporal Operator"), 
     26                MetadataFormat("MetadataFormat", "Metadata Format"), 
     27                RecordDetail("RecordDetail", "Record Detail"),;          
     28                 
     29                private final String fieldName; 
     30                private final String fieldLabel; 
     31                Names(String fieldName, String fieldLabel) { 
     32                        this.fieldName = fieldName; 
     33                        this.fieldLabel = fieldLabel; 
     34                } 
     35                public final String fieldName() { 
     36                        return fieldName; 
     37                } 
     38                public final String fieldLabel() { 
     39                        return fieldLabel; 
     40                }  
     41        } 
     42         
    1743        public static enum TermTarget { 
    1844                FullText("document_ts_vector", "FullText"), 
     
    81107         
    82108        public static enum RecordDetail { 
    83                 DocumentId("DocumentId", "DocumentId"), 
     109                DocumentSimple("Simple", "DocumentSimple"), 
    84110                DocumentBrief("Brief", "DocumentBrief"), 
    85111                DocumentSummary("Summary", "DocumentSummary"), 
     
    191217         * */ 
    192218        public static RecordDetail getRecordDetails(String label){ 
    193                 RecordDetail type = RecordDetail.DocumentId; 
     219                RecordDetail type = RecordDetail.DocumentSimple; 
    194220                if (label != null) { 
    195221                        for (RecordDetail item : RecordDetail.values()) { 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/java/ndg/services/discovery/model/PresentAgent.java

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

    r6599 r6622  
    122122                        } 
    123123                }; 
    124                 DiscoveryDictionary.RecordDetail type = DiscoveryDictionary.getRecordDetails(searchType.getRecordDetail()); 
     124                DiscoveryDictionary.RecordDetail type = DiscoveryDictionary.getRecordDetails("getDefault"); 
     125                if (searchType.getRetrieveCriteria() != null) 
     126                        type = DiscoveryDictionary.getRecordDetails(searchType.getRetrieveCriteria().getRecordDetail()); 
     127 
    125128                res = present.doPresent(conn, toFilter, type); 
    126129                return res; 
     
    395398        private StringBuffer getOrderBy(StringBuffer sqlCmd) { 
    396399                StringBuffer orderSQL = new StringBuffer(); 
    397                 if (searchType.getOrderByArray() != null && searchType.getOrderByArray().length > 0) { 
     400                if (searchType.getRetrieveCriteria() != null && searchType.getRetrieveCriteria().getOrderByArray().length > 0) { 
    398401                        // orderSQL.append(" ORDER BY "); 
    399                         for (OrderByType order : searchType.getOrderByArray()) { 
     402                        for (OrderByType order : searchType.getRetrieveCriteria().getOrderByArray()) { 
    400403 
    401404                                DiscoveryDictionary.OrderByField orderField = DiscoveryDictionary.getOrderByField(order 
  • TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/resources/META-INF/DiscoverySchema.xsd

    r6599 r6622  
    11<?xml version="1.0" encoding="UTF-8"?> 
    2 <!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Steve Donegan (NERC Earth Observation Data Centre) --> 
    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"> 
     2<xs:schema targetNamespace="http://medin.discovery.services.ndg/" elementFormDefault="qualified" 
     3        attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     4        xmlns:tns="http://medin.discovery.services.ndg/" 
     5        xmlns:tns1="http://medin.discovery.services.ndg/" 
     6        xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
     7        xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
     8        xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    49        <!-- Request elements --> 
    510        <xs:element name="DoSearch" type="tns:SearchType"/> 
     
    2126        <xs:complexType name="PresentType"> 
    2227                <xs:sequence> 
    23                         <xs:element name="Documents" minOccurs="0"> 
     28                        <xs:element name="Documents" type="tns:SimpleDocument" maxOccurs="unbounded"/> 
     29                         
     30                        <xs:element name="RetrieveCriteria" type="tns:RetrieveCriteriaType" minOccurs="0"> 
     31                                <xs:annotation> 
     32                                        <xs:documentation>Comparison of a date or date range to specified/default dates within metadata.</xs:documentation> 
     33                                </xs:annotation> 
     34                        </xs:element> 
     35                </xs:sequence> 
     36        </xs:complexType> 
     37        <xs:complexType name="RetrieveCriteriaType"> 
     38                <xs:sequence> 
     39                        <xs:element name="OrderBy" type="tns:OrderByType" minOccurs="0" maxOccurs="unbounded"> 
     40                                <xs:annotation> 
     41                                        <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> 
     42                                </xs:annotation> 
     43                        </xs:element> 
     44                        <xs:element name="RecordDetail" type="xs:string" minOccurs="0"> 
     45                                <xs:annotation> 
     46                                        <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> 
     47                                </xs:annotation> 
     48                        </xs:element> 
     49                </xs:sequence> 
     50        </xs:complexType> 
     51        <xs:complexType name="SearchType"> 
     52                <xs:sequence> 
     53                        <xs:element name="SearchCriteria"> 
     54                                <xs:annotation> 
     55                                        <xs:documentation>Must have at least one of : termSearch, spatialSearch, temporalSearch.</xs:documentation> 
     56                                </xs:annotation> 
    2457                                <xs:complexType> 
    25                                         <xs:complexContent> 
    26                                                 <xs:extension base="tns:DocumentsType"> 
    27                                                         <xs:sequence> 
    28                                                                 <xs:element ref="tns:DocumentId" maxOccurs="unbounded"/> 
    29                                                         </xs:sequence> 
    30                                                 </xs:extension> 
    31                                         </xs:complexContent> 
    32                                 </xs:complexType> 
    33                         </xs:element> 
    34                         <xs:element name="Format" type="xs:string" minOccurs="0"> 
    35                                 <xs:annotation> 
    36                                         <xs:documentation>Required presentation format, value taken from presentFormatList.</xs:documentation> 
    37                                 </xs:annotation> 
    38                         </xs:element> 
    39                 </xs:sequence> 
    40         </xs:complexType> 
    41         <xs:complexType name="SearchType"> 
    42                 <xs:sequence> 
    43                         <xs:element name="SearchCriteria"> 
    44                                 <xs:annotation> 
    45                                         <xs:documentation>Must have at least one of : termSearch, spatialSearch, temporalSearch.</xs:documentation> 
    46                                 </xs:annotation> 
    47                                 <xs:complexType> 
    48                                         <xs:sequence> 
    49                                                 <xs:element name="TermSearch" type="tns:TermSearchType" minOccurs="0" maxOccurs="unbounded"> 
     58                                        <xs:sequence> 
     59                                                <xs:element name="TermSearch" type="tns:TermSearchType" minOccurs="0" 
     60                                                        maxOccurs="unbounded"> 
    5061                                                        <xs:annotation> 
    5162                                                                <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> 
     
    6576                                </xs:complexType> 
    6677                        </xs:element> 
     78                        <xs:element name="RetrieveCriteria" type="tns:RetrieveCriteriaType" minOccurs="0"> 
     79                                <xs:annotation> 
     80                                        <xs:documentation>Comparison of a date or date range to specified/default dates within metadata.</xs:documentation> 
     81                                </xs:annotation> 
     82                        </xs:element> 
    6783                        <xs:element name="Start" type="xs:unsignedInt" minOccurs="0"> 
    6884                                <xs:annotation> 
     
    7591                                </xs:annotation> 
    7692                        </xs:element> 
    77                         <xs:element name="OrderBy" type="tns:OrderByType" minOccurs="0" maxOccurs="unbounded"> 
    78                                 <xs:annotation> 
    79                                         <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> 
    80                                 </xs:annotation> 
    81                         </xs:element> 
    8293                        <xs:element name="Scope" type="xs:string" minOccurs="0" maxOccurs="unbounded"> 
    8394                                <xs:annotation> 
     
    8899                                <xs:annotation> 
    89100                                        <xs:documentation>restrict records to specific original input formats. </xs:documentation> 
    90                                 </xs:annotation> 
    91                         </xs:element> 
    92                         <xs:element name="RecordDetail" type="xs:string" minOccurs="0"> 
    93                                 <xs:annotation> 
    94                                         <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> 
    95101                                </xs:annotation> 
    96102                        </xs:element> 
     
    107113                        <xs:element name="Status" type="xs:boolean"/> 
    108114                        <xs:element name="StatusMessage" type="xs:string"/> 
    109                         <xs:element name="Documents" minOccurs="0"> 
    110                                 <xs:complexType> 
    111                                         <xs:complexContent> 
    112                                                 <xs:extension base="tns:DocumentReturnType"> 
    113                                                         <xs:sequence> 
    114                                                                 <xs:element name="DocumentFull" type="tns:ReturnFullType" maxOccurs="unbounded"/> 
    115                                                         </xs:sequence> 
    116                                                 </xs:extension> 
    117                                         </xs:complexContent> 
    118                                 </xs:complexType> 
    119                         </xs:element> 
     115                        <xs:element name="Documents" minOccurs="0" type="tns:Documents"/> 
    120116                </xs:sequence> 
    121117        </xs:complexType> 
     
    126122                        <xs:element name="ResultId" type="xs:int" minOccurs="0"/> 
    127123                        <xs:element name="Hits" type="xs:int" minOccurs="0"/> 
    128                         <xs:element name="Documents" minOccurs="0"> 
    129                                 <xs:complexType> 
    130                                         <xs:complexContent> 
    131                                                 <xs:extension base="tns:DocumentsType"> 
    132                                                         <xs:choice> 
    133                                                                 <xs:sequence> 
    134                                                                         <xs:element ref="tns:DocumentId" maxOccurs="unbounded"/> 
    135                                                                 </xs:sequence>                                                   
    136                                                                 <xs:sequence> 
    137                                                                         <xs:element name="DocumentFull" type="tns:ReturnFullType" maxOccurs="unbounded"/> 
    138                                                                 </xs:sequence> 
    139                                                                 <xs:sequence> 
    140                                                                         <xs:element name="DocumentBrief" type="tns:ReturnBriefType" maxOccurs="unbounded"/> 
    141                                                                 </xs:sequence> 
    142                                                                 <xs:sequence> 
    143                                                                         <xs:element name="DocumentSummary" type="tns:ReturnSummaryType" maxOccurs="unbounded"/> 
    144                                                                 </xs:sequence> 
    145                                                         </xs:choice> 
    146                                                 </xs:extension> 
    147                                         </xs:complexContent> 
    148                                 </xs:complexType> 
    149                         </xs:element> 
     124                        <xs:element name="Documents" minOccurs="0" type="tns:Documents"/> 
    150125                </xs:sequence> 
    151126        </xs:complexType> 
     
    283258                </xs:sequence> 
    284259        </xs:complexType> 
    285         <xs:element name="DocumentId" type="xs:string"/> 
     260 
     261        <xs:complexType name="SimpleDocument"> 
     262                <xs:sequence> 
     263                        <xs:element name="DocumentId" type="xs:string"/> 
     264                </xs:sequence> 
     265        </xs:complexType> 
     266 
     267        <xs:complexType name="ReturnSimpleType"> 
     268                <xs:complexContent> 
     269                        <xs:extension base="tns:SimpleDocument"> </xs:extension> 
     270                </xs:complexContent> 
     271        </xs:complexType> 
     272 
    286273        <xs:complexType name="ReturnBriefType"> 
    287274                <xs:complexContent> 
    288                         <xs:extension base="tns:DocumentsType"> 
     275                        <xs:extension base="tns:ReturnSimpleType"> 
    289276                                <xs:sequence> 
    290                                         <xs:element ref="tns:DocumentId"/> 
    291277                                        <xs:element name="Title" type="xs:string" minOccurs="0"/> 
    292                                         <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded"> 
     278                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" 
     279                                                maxOccurs="unbounded"> 
    293280                                                <xs:annotation> 
    294281                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation> 
     
    301288        <xs:complexType name="ReturnSummaryType"> 
    302289                <xs:complexContent> 
    303                         <xs:extension base="tns:DocumentsType"> 
     290                        <xs:extension base="tns:ReturnBriefType"> 
    304291                                <xs:sequence> 
    305                                         <xs:element ref="tns:DocumentId"/> 
    306                                         <xs:element name="Title" type="xs:string" minOccurs="0"/> 
    307292                                        <xs:element name="Abstract" type="xs:string" minOccurs="0"/> 
    308                                         <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded"> 
    309                                                 <xs:annotation> 
    310                                                         <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation> 
    311                                                 </xs:annotation> 
    312                                         </xs:element> 
    313                                         <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/> 
    314                                         <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/> 
     293                                        <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0" 
     294                                                maxOccurs="unbounded"/> 
     295                                        <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0" 
     296                                                maxOccurs="unbounded"/> 
    315297                                </xs:sequence> 
    316298                        </xs:extension> 
     
    319301        <xs:complexType name="ReturnFullType"> 
    320302                <xs:complexContent> 
    321                         <xs:extension base="tns:DocumentsType"> 
     303                        <xs:extension base="tns:ReturnSummaryType"> 
    322304                                <xs:sequence> 
    323                                         <xs:element ref="tns:DocumentId"/> 
    324                                         <xs:element name="Title" type="xs:string" minOccurs="0"/> 
    325                                         <xs:element name="Abstract" type="xs:string" minOccurs="0"/> 
    326                                         <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded"> 
    327                                                 <xs:annotation> 
    328                                                         <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation> 
    329                                                 </xs:annotation> 
    330                                         </xs:element> 
    331                                         <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/> 
    332                                         <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/> 
    333305                                        <xs:element name="Document" type="xs:string"> 
    334306                                                <xs:annotation> 
     
    346318                </xs:sequence> 
    347319        </xs:complexType> 
     320        <xs:complexType name="Documents"> 
     321                <xs:complexContent> 
     322                        <xs:extension base="tns:DocumentsType"> 
     323                                <xs:choice> 
     324                                        <xs:sequence> 
     325                                                <xs:element name="DocumentSimple" type="tns:ReturnSimpleType" 
     326                                                        maxOccurs="unbounded"/> 
     327                                        </xs:sequence> 
     328                                        <xs:sequence> 
     329                                                <xs:element name="DocumentFull" type="tns:ReturnFullType" 
     330                                                        maxOccurs="unbounded"/> 
     331                                        </xs:sequence> 
     332                                        <xs:sequence> 
     333                                                <xs:element name="DocumentBrief" type="tns:ReturnBriefType" 
     334                                                        maxOccurs="unbounded"/> 
     335                                        </xs:sequence> 
     336                                        <xs:sequence> 
     337                                                <xs:element name="DocumentSummary" type="tns:ReturnSummaryType" 
     338                                                        maxOccurs="unbounded"/> 
     339                                        </xs:sequence> 
     340                                </xs:choice> 
     341                        </xs:extension> 
     342                </xs:complexContent> 
     343        </xs:complexType> 
     344        <xs:complexType name="ReturnOptionaFieldsType"> 
     345                <xs:annotation> 
     346                        <xs:documentation>Contains a pair of name/value related to a previous request</xs:documentation> 
     347                </xs:annotation> 
     348                <xs:sequence> 
     349                        <xs:element name="FieldName" type="xs:string"/> 
     350                        <xs:element name="FieldValue" type="xs:string" minOccurs="0"> 
     351                                <xs:annotation> 
     352                                        <xs:documentation/> 
     353                                </xs:annotation> 
     354                        </xs:element> 
     355                </xs:sequence> 
     356        </xs:complexType> 
    348357</xs:schema> 
Note: See TracChangeset for help on using the changeset viewer.