Project

General

Profile

1
<?xml version="1.0" encoding="UTF-8"?>
2
<xs:schema  targetNamespace="http://ns.dataone.org/service/types/v1.1"
3
	xmlns:d1="http://ns.dataone.org/service/types/v1"
4
    xmlns:d1_v1.1="http://ns.dataone.org/service/types/v1.1"
5
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
6
    version="1.1.0"
7
    elementFormDefault="unqualified" attributeFormDefault="unqualified">
8

    
9
<!-- 
10
$HeadURL: https://repository.dataone.org/software/cicore/branches/D1_SCHEMA_v1.1/dataoneTypes.xsd $
11
$Id: dataoneTypes.xsd 10341 2012-10-10 14:07:49Z vieglais $
12

    
13
About this document:
14

    
15
  This XML Schema document defines the common data structures that are used
16
  to support messaging between the major components of the DataONE
17
  infrastructure and to guide structure design for storage of information
18
  required for normal operations.
19

    
20
License:
21

    
22
  This work was created by participants in the DataONE project, and is
23
  jointly copyrighted by participating institutions in DataONE. For
24
  more information on DataONE, see our web site at http://dataone.org.
25

    
26
    Copyright 2011
27

    
28
  Licensed under the Apache License, Version 2.0 (the "License");
29
  you may not use this file except in compliance with the License.
30
  You may obtain a copy of the License at
31

    
32
    http://www.apache.org/licenses/LICENSE-2.0
33

    
34
  Unless required by applicable law or agreed to in writing, software
35
  distributed under the License is distributed on an "AS IS" BASIS,
36
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
37
  See the License for the specific language governing permissions and
38
  limitations under the License.
39

    
40
Formatting: 
41

    
42
  - This document should be saved as a UTF-8 encoded file.
43

    
44
  - Indent using spaces, not tabs, with two spaces per indent level.
45

    
46
  - Line wrapping should be set to 80 chars, adjusted as necessary
47

    
48
  - Documentation entries contain formatting instructions for integration with
49
    the DataONE architecture documentation, available at:
50

    
51
      http://mule1.dataone.org/ArchitectureDocs-current
52

    
53
-->
54

    
55
<!-- ************************************
56
        DEFINE REUSABLE SIMPLE TYPES HERE 
57
        ************************************ -->
58

    
59

    
60

    
61
  <!-- ***************************************
62
          DEFINE REUSABLE COMPLEX  TYPES HERE 
63
          *************************************** -->
64

    
65
  <!-- NOTE THAT ALL SERIALIZEABLE ROOT ELEMENTS FOR MESSAGES SHOULD BE OF A
66
       COMPLEX TYPE -->
67
    <xs:import namespace="http://ns.dataone.org/service/types/v1" 
68
        schemaLocation="http://ns.dataone.org/service/types/v1" />
69

    
70

    
71
  <!-- QueryEngineDescription -->
72
  <xs:complexType name="QueryEngineDescription">
73
    <xs:annotation>
74
      <xs:documentation>Describes a query engine that can be used to search content on the node. 
75
      Query engines may be general purpose or specialized for particular communities or domains.</xs:documentation>
76
    </xs:annotation>
77
    <xs:sequence>
78
      <xs:element name="queryEngineVersion" type="xs:string" minOccurs="1" maxOccurs="1">
79
        <xs:annotation>
80
          <xs:documentation>The version of the underlying query engine. Used by clients to determine possible
81
          compatibility concerns or features available.</xs:documentation>
82
        </xs:annotation>
83
      </xs:element>
84
      <xs:element name="querySchemaVersion" type="xs:string" minOccurs="0" maxOccurs="1">
85
        <xs:annotation>
86
          <xs:documentation>Version of the schema in use by the query engine, e.g. &quot;1.0.1&quot;</xs:documentation>
87
        </xs:annotation>
88
      </xs:element>
89
      <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1">
90
        <xs:annotation>
91
          <xs:documentation>The full, human readable name of the query engine. For example: 
92
            &quot;Apache SOLR&quot;</xs:documentation>
93
        </xs:annotation>
94
      </xs:element>
95
      <xs:element name="additionalInfo" type="d1:NonEmptyString" minOccurs="0" maxOccurs="unbounded">
96
        <xs:annotation>
97
          <xs:documentation>An optional human readable description of the query engine. This can be 
98
            used to describe any special capabilities or intended uses for the query engine. For example, 
99
            a query engine may be tuned to suit a particular audience or domain as opposed to providing 
100
            a general purpose discovery mechanism.</xs:documentation>
101
          <xs:documentation>This field may also contain links to additional information about the query engine, 
102
          such as documentation for the search syntax provided by the query engine implemntors.</xs:documentation>
103
          </xs:annotation>
104
      </xs:element>
105
      <xs:element name="queryField" type="d1_v1.1:QueryField" minOccurs="0" maxOccurs="unbounded">
106
        <xs:annotation>
107
          <xs:documentation>A list of query fields supported by the query engine.</xs:documentation>
108
        </xs:annotation>
109
      </xs:element>
110
    </xs:sequence>
111
  </xs:complexType>
112
  
113
  <!-- QueryEngineList -->
114
  <xs:complexType name="QueryEngineList">
115
    <xs:annotation>
116
      <xs:documentation>A list of query engine names that indicate the possible values for 
117
        CNRead.getQueryEngineDescription and CNRead.query REST API endpoints.</xs:documentation>
118
    </xs:annotation>
119
    <xs:sequence>
120
      <xs:element name ="queryEngine" type="d1:NonEmptyString" 
121
        minOccurs="0" maxOccurs="unbounded">
122
        <xs:annotation>
123
          <xs:documentation>The name of a queryEngine. This value will be used as a path element in 
124
            REST API calls and so should not contain characters that will need to be escaped.</xs:documentation>
125
        </xs:annotation>
126
      </xs:element>
127
    </xs:sequence>
128
  </xs:complexType>
129

    
130
  <!-- QueryField -->
131
  <xs:complexType name="QueryField">
132
    <xs:annotation>
133
      <xs:documentation></xs:documentation>
134
    </xs:annotation>
135
    <xs:sequence>
136
      <xs:element name="name" type="d1:NonEmptyString" minOccurs="1" maxOccurs="1">
137
        <xs:annotation>
138
          <xs:documentation>The name of the field as used programmatically when 
139
            constructing queries or other rferences to the field.</xs:documentation>
140
        </xs:annotation>
141
      </xs:element>
142
      <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="unbounded">
143
        <xs:annotation>
144
          <xs:documentation>An optional, repeatable, brief description of the field that can be
145
          used to help guide developers or end users in appropriate use of the field. May for 
146
          example, contain a links to additional documentation.</xs:documentation>
147
        </xs:annotation>
148
      </xs:element>
149
      <xs:element name="type" type="d1:NonEmptyString" minOccurs="1" maxOccurs="1">
150
        <xs:annotation>
151
          <xs:documentation>The type of the field, expressed in the language peculiar to the 
152
          query engine being described.</xs:documentation>
153
        </xs:annotation>
154
      </xs:element>
155
      <xs:element name="searchable" type="xs:boolean" minOccurs="1" maxOccurs="1">
156
        <xs:annotation>
157
          <xs:documentation>Indicates if the field may be used in constructing queries (as opposed 
158
            to only appearing in results)</xs:documentation>
159
        </xs:annotation>        
160
      </xs:element>
161
      <xs:element name="returnable" type="xs:boolean" minOccurs="1" maxOccurs="1">
162
        <xs:annotation>
163
          <xs:documentation>Indicates if the field values may be returned in search results.</xs:documentation>
164
        </xs:annotation>        
165
      </xs:element>
166
      <xs:element name="sortable" type="xs:boolean" minOccurs="1" maxOccurs="1">
167
        <xs:annotation>
168
          <xs:documentation>Indicates if the field can be used for sorting results.</xs:documentation>
169
        </xs:annotation>        
170
      </xs:element>
171
      <xs:element name="multivalued" type="xs:boolean" minOccurs="0" maxOccurs="1">
172
        <xs:annotation>
173
          <xs:documentation>Indicates if the field may contain multiple values. Some query engines
174
          such as SOLR support this capability.</xs:documentation>
175
        </xs:annotation>        
176
      </xs:element>
177
    </xs:sequence>
178
  </xs:complexType>
179

    
180

    
181
  <!-- ******************************************
182
          DEFINE ROOT ELEMENTS OF MESSAGES HERE 
183
          ****************************************** -->
184
  <!-- NOTE THAT ALL SERIALIZEABLE ROOT ELEMENTS FOR MESSAGES SHOULD BE OF A 
185
       COMPLEX TYPE -->
186

    
187
  <!-- These root-level element definitions are provided for selected types so
188
       that those types can be used in serialized messages in method calls in
189
       DataONE. Any type that is included as a parameter to or a return type
190
       from a DataONE service should have a corresponding root element of that
191
       type defined here.
192
  -->
193

    
194
  <xs:element name="queryEngineList" type="d1_v1.1:QueryEngineList" />
195
  <xs:element name="queryEngineDescription" type="d1_v1.1:QueryEngineDescription"></xs:element>
196
</xs:schema>
197

    
(2-2/2)