Allow max-sockets in use to a particular target to be configured.
[yazproxy-moved-to-github.git] / etc / zeerex-2.0.xsd
1 <schema
2   xmlns='http://www.w3.org/2001/XMLSchema'
3   targetNamespace='http://explain.z3950.org/dtd/2.0/'
4   xmlns:explain='http://explain.z3950.org/dtd/2.0/'>
5
6  <element name='explain'>
7   <complexType>
8    <sequence>
9     <element ref='explain:serverInfo'/>
10     <element ref='explain:databaseInfo' minOccurs='0' maxOccurs='1'/>
11     <element ref='explain:metaInfo' minOccurs='0' maxOccurs='1'/>
12     <element ref='explain:indexInfo' minOccurs='0' maxOccurs='1'/>
13     <choice minOccurs='0' maxOccurs='1'>
14      <element ref='explain:recordInfo'/>
15      <element ref='explain:schemaInfo'/>
16     </choice>
17     <element ref='explain:configInfo' minOccurs='0' maxOccurs='1'/>
18    </sequence>
19    <attribute name='authoritative' use='optional' default='false'>
20     <simpleType>
21      <restriction base='string'>
22       <enumeration value='true'/>
23       <enumeration value='false'/>
24      </restriction>
25     </simpleType>
26    </attribute>
27    <attribute name='id' type='string' use='optional'/>
28   </complexType>
29  </element>
30
31  <element name='serverInfo'>
32   <complexType>
33    <sequence>
34     <element ref='explain:host'/>
35     <element ref='explain:port'/>
36     <element ref='explain:database'/>
37     <element ref='explain:authentication' minOccurs='0' maxOccurs='1'/>
38    </sequence>
39    <attribute name='protocol' type='string' use='optional' default='Z39.50'/>
40    <attribute name='version' type='string' use='optional' default='3'/>
41    <attribute name='transport' type='string' use='optional' default='http'/>
42    <attribute name='wsdl' type='string' use='optional'/>
43   </complexType>
44  </element>
45
46  <element name='host'>
47   <complexType mixed='true'>
48   </complexType>
49  </element>
50
51  <element name='port'>
52   <complexType mixed='true'>
53   </complexType>
54  </element>
55
56  <element name='database'>
57   <complexType mixed='true'>
58    <attribute name='numRecs' type='string' use='optional'/>
59    <attribute name='lastUpdate' type='string' use='optional'/>
60   </complexType>
61  </element>
62
63  <element name='authentication'>
64   <complexType>
65    <choice>
66     <element ref='explain:open'/>
67     <sequence>
68      <element ref='explain:user' minOccurs='0' maxOccurs='1'/>
69      <element ref='explain:group' minOccurs='0' maxOccurs='1'/>
70      <element ref='explain:password' minOccurs='0' maxOccurs='1'/>
71     </sequence>
72    </choice>
73    <attribute name='required' use='optional' default='true'>
74     <simpleType>
75      <restriction base='string'>
76       <enumeration value='true'/>
77       <enumeration value='false'/>
78      </restriction>
79     </simpleType>
80    </attribute>
81   </complexType>
82  </element>
83
84  <element name='open'>
85   <complexType mixed='true'>
86   </complexType>
87  </element>
88
89  <element name='user'>
90   <complexType mixed='true'>
91   </complexType>
92  </element>
93
94  <element name='group'>
95   <complexType mixed='true'>
96   </complexType>
97  </element>
98
99  <element name='password'>
100   <complexType mixed='true'>
101   </complexType>
102  </element>
103
104  <element name='databaseInfo'>
105   <complexType>
106    <sequence>
107     <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
108     <element ref='explain:description' minOccurs='0' maxOccurs='unbounded'/>
109     <choice minOccurs='0' maxOccurs='unbounded'>
110      <element ref='explain:author'/>
111      <element ref='explain:contact'/>
112      <element ref='explain:extent'/>
113      <element ref='explain:history'/>
114      <element ref='explain:langUsage'/>
115      <element ref='explain:restrictions'/>
116      <element ref='explain:subjects'/>
117      <element ref='explain:links'/>
118      <element ref='explain:implementation'/>
119     </choice>
120    </sequence>
121   </complexType>
122  </element>
123
124  <element name='title'>
125   <complexType mixed='true'>
126    <attribute name='primary' use='optional'>
127     <simpleType>
128      <restriction base='string'>
129       <enumeration value='true'/>
130       <enumeration value='false'/>
131      </restriction>
132     </simpleType>
133    </attribute>
134    <attribute name='lang' type='string' use='optional'/>
135   </complexType>
136  </element>
137
138  <element name='description'>
139   <complexType mixed='true'>
140    <attribute name='primary' use='optional'>
141     <simpleType>
142      <restriction base='string'>
143       <enumeration value='true'/>
144       <enumeration value='false'/>
145      </restriction>
146     </simpleType>
147    </attribute>
148    <attribute name='lang' type='string' use='optional'/>
149   </complexType>
150  </element>
151
152  <element name='author'>
153   <complexType mixed='true'>
154    <attribute name='primary' use='optional'>
155     <simpleType>
156      <restriction base='string'>
157       <enumeration value='true'/>
158       <enumeration value='false'/>
159      </restriction>
160     </simpleType>
161    </attribute>
162    <attribute name='lang' type='string' use='optional'/>
163   </complexType>
164  </element>
165
166  <element name='contact'>
167   <complexType mixed='true'>
168    <attribute name='primary' use='optional'>
169     <simpleType>
170      <restriction base='string'>
171       <enumeration value='true'/>
172       <enumeration value='false'/>
173      </restriction>
174     </simpleType>
175    </attribute>
176    <attribute name='lang' type='string' use='optional'/>
177   </complexType>
178  </element>
179
180  <element name='extent'>
181   <complexType mixed='true'>
182    <attribute name='primary' use='optional'>
183     <simpleType>
184      <restriction base='string'>
185       <enumeration value='true'/>
186       <enumeration value='false'/>
187      </restriction>
188     </simpleType>
189    </attribute>
190    <attribute name='lang' type='string' use='optional'/>
191   </complexType>
192  </element>
193
194  <element name='history'>
195   <complexType mixed='true'>
196    <attribute name='primary' use='optional'>
197     <simpleType>
198      <restriction base='string'>
199       <enumeration value='true'/>
200       <enumeration value='false'/>
201      </restriction>
202     </simpleType>
203    </attribute>
204    <attribute name='lang' type='string' use='optional'/>
205   </complexType>
206  </element>
207
208  <element name='langUsage'>
209   <complexType mixed='true'>
210    <attribute name='codes' type='string' use='optional'/>
211    <attribute name='primary' use='optional'>
212     <simpleType>
213      <restriction base='string'>
214       <enumeration value='true'/>
215       <enumeration value='false'/>
216      </restriction>
217     </simpleType>
218    </attribute>
219    <attribute name='lang' type='string' use='optional'/>
220   </complexType>
221  </element>
222
223  <element name='restrictions'>
224   <complexType mixed='true'>
225    <attribute name='primary' use='optional'>
226     <simpleType>
227      <restriction base='string'>
228       <enumeration value='true'/>
229       <enumeration value='false'/>
230      </restriction>
231     </simpleType>
232    </attribute>
233    <attribute name='lang' type='string' use='optional'/>
234   </complexType>
235  </element>
236
237  <element name='subjects'>
238   <complexType>
239    <sequence>
240     <element ref='explain:subject' maxOccurs='unbounded'/>
241    </sequence>
242   </complexType>
243  </element>
244
245  <element name='subject'>
246   <complexType mixed='true'>
247   </complexType>
248  </element>
249
250  <element name='links'>
251   <complexType>
252    <sequence>
253     <element ref='explain:link' maxOccurs='unbounded'/>
254    </sequence>
255   </complexType>
256  </element>
257
258  <element name='link'>
259   <complexType mixed='true'>
260    <attribute name='type' type='string' use='optional'/>
261   </complexType>
262  </element>
263
264  <element name='implementation'>
265   <complexType>
266    <sequence>
267     <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
268    </sequence>
269    <attribute name='identifier' type='string' use='optional'/>
270    <attribute name='version' type='string' use='optional'/>
271   </complexType>
272  </element>
273
274  <element name='metaInfo'>
275   <complexType>
276    <sequence>
277     <element ref='explain:dateModified'/>
278     <sequence minOccurs='0' maxOccurs='1'>
279      <element ref='explain:aggregatedFrom'/>
280      <element ref='explain:dateAggregated'/>
281     </sequence>
282    </sequence>
283   </complexType>
284  </element>
285
286  <element name='dateModified'>
287   <complexType mixed='true'>
288   </complexType>
289  </element>
290
291  <element name='aggregatedFrom'>
292   <complexType mixed='true'>
293   </complexType>
294  </element>
295
296  <element name='dateAggregated'>
297   <complexType mixed='true'>
298   </complexType>
299  </element>
300
301  <element name='indexInfo'>
302   <complexType>
303    <choice maxOccurs='unbounded'>
304     <element ref='explain:set'/>
305     <element ref='explain:index'/>
306     <element ref='explain:sortKeyword'/>
307    </choice>
308   </complexType>
309  </element>
310
311  <element name='set'>
312   <complexType>
313    <sequence>
314     <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
315    </sequence>
316    <attribute name='name' type='string' use='required'/>
317    <attribute name='identifier' type='string' use='required'/>
318   </complexType>
319  </element>
320
321  <element name='index'>
322   <complexType>
323    <sequence>
324     <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
325     <element ref='explain:map' maxOccurs='unbounded'/>
326     <element ref='explain:configInfo' minOccurs='0' maxOccurs='1'/>
327    </sequence>
328    <attribute name='id' type='string' use='optional'/>
329    <attribute name='search' use='optional'>
330     <simpleType>
331      <restriction base='string'>
332       <enumeration value='true'/>
333       <enumeration value='false'/>
334      </restriction>
335     </simpleType>
336    </attribute>
337    <attribute name='scan' use='optional'>
338     <simpleType>
339      <restriction base='string'>
340       <enumeration value='true'/>
341       <enumeration value='false'/>
342      </restriction>
343     </simpleType>
344    </attribute>
345    <attribute name='sort' use='optional'>
346     <simpleType>
347      <restriction base='string'>
348       <enumeration value='true'/>
349       <enumeration value='false'/>
350      </restriction>
351     </simpleType>
352    </attribute>
353   </complexType>
354  </element>
355
356  <element name='sortKeyword'>
357   <complexType mixed='true'>
358   </complexType>
359  </element>
360
361  <element name='map'>
362   <complexType>
363    <choice>
364     <sequence>
365      <element ref='explain:attr' maxOccurs='unbounded'/>
366     </sequence>
367     <element ref='explain:name'/>
368    </choice>
369    <attribute name='primary' use='optional' default='false'>
370     <simpleType>
371      <restriction base='string'>
372       <enumeration value='true'/>
373       <enumeration value='false'/>
374      </restriction>
375     </simpleType>
376    </attribute>
377   </complexType>
378  </element>
379
380  <element name='name'>
381   <complexType mixed='true'>
382    <attribute name='set' type='string' use='optional'/>
383   </complexType>
384  </element>
385
386  <element name='attr'>
387   <complexType mixed='true'>
388    <attribute name='type' type='string' use='required'/>
389    <attribute name='set' type='string' use='optional' default='1.2.840.10003.3.1'/>
390   </complexType>
391  </element>
392
393  <element name='recordInfo'>
394   <complexType>
395    <sequence>
396     <element ref='explain:recordSyntax' maxOccurs='unbounded'/>
397    </sequence>
398   </complexType>
399  </element>
400
401  <element name='recordSyntax'>
402   <complexType>
403    <sequence>
404     <element ref='explain:elementSet' maxOccurs='unbounded'/>
405    </sequence>
406    <attribute name='name' type='string' use='optional'/>
407    <attribute name='identifier' type='string' use='optional'/>
408   </complexType>
409  </element>
410
411  <element name='elementSet'>
412   <complexType>
413    <sequence>
414     <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
415    </sequence>
416    <attribute name='name' type='string' use='required'/>
417   </complexType>
418  </element>
419
420  <element name='schemaInfo'>
421   <complexType>
422    <sequence>
423     <element ref='explain:schema' maxOccurs='unbounded'/>
424    </sequence>
425   </complexType>
426  </element>
427
428  <element name='schema'>
429   <complexType>
430    <sequence>
431     <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
432    </sequence>
433    <attribute name='identifier' type='string' use='required'/>
434    <attribute name='name' type='string' use='required'/>
435    <attribute name='location' type='string' use='optional'/>
436    <attribute name='sort' use='optional' default='false'>
437     <simpleType>
438      <restriction base='string'>
439       <enumeration value='true'/>
440       <enumeration value='false'/>
441      </restriction>
442     </simpleType>
443    </attribute>
444    <attribute name='retrieve' use='optional' default='true'>
445     <simpleType>
446      <restriction base='string'>
447       <enumeration value='true'/>
448       <enumeration value='false'/>
449      </restriction>
450     </simpleType>
451    </attribute>
452   </complexType>
453  </element>
454
455  <element name='configInfo'>
456   <complexType>
457    <choice minOccurs='0' maxOccurs='unbounded'>
458     <element ref='explain:default'/>
459     <element ref='explain:setting'/>
460     <element ref='explain:supports'/>
461    </choice>
462   </complexType>
463  </element>
464
465  <element name='default'>
466   <complexType mixed='true'>
467    <attribute name='type' type='string' use='required'/>
468   </complexType>
469  </element>
470
471  <element name='setting'>
472   <complexType mixed='true'>
473    <attribute name='type' type='string' use='required'/>
474   </complexType>
475  </element>
476
477  <element name='supports'>
478   <complexType mixed='true'>
479    <attribute name='type' type='string' use='required'/>
480   </complexType>
481  </element>
482 </schema>