-
Notifications
You must be signed in to change notification settings - Fork 0
/
openscan.xsd
227 lines (224 loc) · 9.71 KB
/
openscan.xsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2010 rel. 2 (http://www.altova.com) by Dansk Bibliotekscenter A/S (Dansk Bibliotekscenter A/S) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:scan="http://oss.dbc.dk/ns/openscan" targetNamespace="http://oss.dbc.dk/ns/openscan" elementFormDefault="qualified">
<xs:annotation>
<xs:documentation xml:lang="en">Openscan Service</xs:documentation>
<xs:documentation xml:lang="en">This XML Schema describes the data and structure of data of the Opensearch scan service.</xs:documentation>
<xs:documentation xml:lang="en">This file is part of OpenSearch.
Copyright © 2009, Dansk Bibliotekscenter a/s, Tempovej 7-11, DK-2750 Ballerup, Denmark. CVR: 15149043
OpenSearch is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
OpenSearch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with OpenSearch. If not, see http://www.gnu.org/licenses/</xs:documentation>
</xs:annotation>
<xs:element name="scanRequest">
<xs:annotation>
<xs:documentation xml:lang="en">The service request.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="scan:agency" minOccurs="0"/>
<xs:element ref="scan:profile" minOccurs="0"/>
<xs:element ref="scan:authentication" minOccurs="0"/>
<xs:element ref="scan:field"/>
<xs:element ref="scan:limit"/>
<xs:element ref="scan:lower" minOccurs="0"/>
<xs:element ref="scan:minFrequency" minOccurs="0"/>
<xs:element ref="scan:maxFrequency" minOccurs="0"/>
<xs:element ref="scan:prefix" minOccurs="0"/>
<xs:element ref="scan:query" minOccurs="0"/>
<xs:element ref="scan:repository" minOccurs="0"/>
<xs:element ref="scan:scanType" minOccurs="0"/>
<xs:element ref="scan:source" minOccurs="0"/>
<xs:element ref="scan:timeToWait" minOccurs="0"/>
<xs:element ref="scan:upper" minOccurs="0"/>
<xs:element ref="scan:callback" minOccurs="0"/>
<xs:element ref="scan:outputType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="scanResponse">
<xs:annotation>
<xs:documentation xml:lang="en">The service response.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element ref="scan:term" maxOccurs="unbounded"/>
<xs:element ref="scan:timeUsed" minOccurs="0"/>
<xs:element ref="scan:lastScanEntry" minOccurs="0"/>
</xs:sequence>
<xs:element ref="scan:error"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="agency" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">Owner of the objects. Use this to restrict your scan to objects from a specific agency.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="authentication">
<xs:annotation>
<xs:documentation xml:lang="en">Parameters used for authentication purposes</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="scan:groupIdAut"/>
<xs:element ref="scan:passwordAut"/>
<xs:element ref="scan:userIdAut"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="field" type="scan:fieldType">
<xs:annotation>
<xs:documentation xml:lang="en">The field to be scanned.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="groupIdAut" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">Identifier of the group (most often a library number) the user belongs to (for authentication purposes)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="hitCount" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">Number of hits for a specific term (phrase).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lastScanEntry" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">The last scan entry that has been checked</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="limit" type="xs:integer">
<xs:annotation>
<xs:documentation xml:lang="en">The number of terms (phrases) to be returned by the service. </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lower" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">The beginning of the scan term (phrase).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="maxFrequency" type="xs:integer">
<xs:annotation>
<xs:documentation xml:lang="en">Maximum number of hits for a term (phrase) to be returned by the service.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="minFrequency" type="xs:integer">
<xs:annotation>
<xs:documentation xml:lang="en">Minimum number of hits for a term (phrase) to be returned by the service.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="name" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">The specific term (phrase) returned by the service.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="passwordAut" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">Password (for authentication purposes)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="prefix" type="xs:string"/>
<xs:element name="profile" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">The profile of sources to be searched.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="query" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">The query language of this service is CQL, and the specific implementation of CQL in this service is described in the opensearch_cql.xml file.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="repository" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">Repository to search. Only need to be specified if different from default</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="scanType" type="scan:scanTypeType">
<xs:annotation>
<xs:documentation xml:lang="en">Type of scan to perform (scan is default - and at the time being the only option)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="source" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">(Not in use yet) The source of objects. Use this if you want to restrict your scan to a specific source in the repository.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="timeToWait" type="xs:integer">
<xs:annotation>
<xs:documentation xml:lang="en">Maximal number of the miliseconds that the user wants to wait for a scan result to be returned</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="timeUsed" type="xs:decimal">
<xs:annotation>
<xs:documentation xml:lang="en">Number of miliseconds used to perform scan</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="upper" type="xs:string"/>
<xs:element name="userIdAut" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">User identifier (for authentication purposes)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="callback" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">If outputType=json.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="outputType" type="scan:outputTypeType">
<xs:annotation>
<xs:documentation xml:lang="en">Choice of output, default is XML.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="error" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">Message returned by the service, if an error occurs.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="term">
<xs:annotation>
<xs:documentation xml:lang="en">Term (Phrase) returned by the service and number of hits.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="scan:name"/>
<xs:element ref="scan:hitCount"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="fieldType">
<xs:annotation>
<xs:documentation xml:lang="en">The fields that can be scanned through this service.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="phrase.title"/>
<xs:enumeration value="phrase.creator"/>
<xs:enumeration value="phrase.description"/>
<xs:enumeration value="phrase.subject"/>
<xs:enumeration value="phrase.type"/>
<xs:enumeration value="phrase.language"/>
<xs:enumeration value="phrase.date"/>
<xs:enumeration value="phrase.source"/>
<xs:enumeration value="phrase.identifier"/>
<xs:enumeration value="phrase.anyIndexes"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="outputTypeType">
<xs:annotation>
<xs:documentation xml:lang="en">The types of output that can be returned by the service.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="xml"/>
<xs:enumeration value="json"/>
<xs:enumeration value="php"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="scanTypeType">
<xs:annotation>
<xs:documentation xml:lang="en">The types of scan that the service can perform</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="scan"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>