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. "1.0.1"</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
|
"Apache SOLR"</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
|
|