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/'>
6 <element name='explain'>
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'/>
17 <element ref='explain:configInfo' minOccurs='0' maxOccurs='1'/>
19 <attribute name='authoritative' use='optional' default='false'>
21 <restriction base='string'>
22 <enumeration value='true'/>
23 <enumeration value='false'/>
27 <attribute name='id' type='string' use='optional'/>
31 <element name='serverInfo'>
34 <element ref='explain:host'/>
35 <element ref='explain:port'/>
36 <element ref='explain:database'/>
37 <element ref='explain:authentication' minOccurs='0' maxOccurs='1'/>
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 <!-- ### The next line is not in the official schema. I need 2.1 -->
43 <attribute name='method' type='string' use='optional' default='get'/>
44 <attribute name='wsdl' type='string' use='optional'/>
49 <complexType mixed='true'>
54 <complexType mixed='true'>
58 <element name='database'>
59 <complexType mixed='true'>
60 <attribute name='numRecs' type='string' use='optional'/>
61 <attribute name='lastUpdate' type='string' use='optional'/>
65 <element name='authentication'>
68 <element ref='explain:open'/>
70 <element ref='explain:user' minOccurs='0' maxOccurs='1'/>
71 <element ref='explain:group' minOccurs='0' maxOccurs='1'/>
72 <element ref='explain:password' minOccurs='0' maxOccurs='1'/>
75 <attribute name='required' use='optional' default='true'>
77 <restriction base='string'>
78 <enumeration value='true'/>
79 <enumeration value='false'/>
87 <complexType mixed='true'>
92 <complexType mixed='true'>
96 <element name='group'>
97 <complexType mixed='true'>
101 <element name='password'>
102 <complexType mixed='true'>
106 <element name='databaseInfo'>
109 <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
110 <element ref='explain:description' minOccurs='0' maxOccurs='unbounded'/>
111 <choice minOccurs='0' maxOccurs='unbounded'>
112 <element ref='explain:author'/>
113 <element ref='explain:contact'/>
114 <element ref='explain:extent'/>
115 <element ref='explain:history'/>
116 <element ref='explain:langUsage'/>
117 <element ref='explain:restrictions'/>
118 <element ref='explain:subjects'/>
119 <element ref='explain:links'/>
120 <element ref='explain:implementation'/>
126 <element name='title'>
127 <complexType mixed='true'>
128 <attribute name='primary' use='optional'>
130 <restriction base='string'>
131 <enumeration value='true'/>
132 <enumeration value='false'/>
136 <attribute name='lang' type='string' use='optional'/>
140 <element name='description'>
141 <complexType mixed='true'>
142 <attribute name='primary' use='optional'>
144 <restriction base='string'>
145 <enumeration value='true'/>
146 <enumeration value='false'/>
150 <attribute name='lang' type='string' use='optional'/>
154 <element name='author'>
155 <complexType mixed='true'>
156 <attribute name='primary' use='optional'>
158 <restriction base='string'>
159 <enumeration value='true'/>
160 <enumeration value='false'/>
164 <attribute name='lang' type='string' use='optional'/>
168 <element name='contact'>
169 <complexType mixed='true'>
170 <attribute name='primary' use='optional'>
172 <restriction base='string'>
173 <enumeration value='true'/>
174 <enumeration value='false'/>
178 <attribute name='lang' type='string' use='optional'/>
182 <element name='extent'>
183 <complexType mixed='true'>
184 <attribute name='primary' use='optional'>
186 <restriction base='string'>
187 <enumeration value='true'/>
188 <enumeration value='false'/>
192 <attribute name='lang' type='string' use='optional'/>
196 <element name='history'>
197 <complexType mixed='true'>
198 <attribute name='primary' use='optional'>
200 <restriction base='string'>
201 <enumeration value='true'/>
202 <enumeration value='false'/>
206 <attribute name='lang' type='string' use='optional'/>
210 <element name='langUsage'>
211 <complexType mixed='true'>
212 <attribute name='codes' type='string' use='optional'/>
213 <attribute name='primary' use='optional'>
215 <restriction base='string'>
216 <enumeration value='true'/>
217 <enumeration value='false'/>
221 <attribute name='lang' type='string' use='optional'/>
225 <element name='restrictions'>
226 <complexType mixed='true'>
227 <attribute name='primary' use='optional'>
229 <restriction base='string'>
230 <enumeration value='true'/>
231 <enumeration value='false'/>
235 <attribute name='lang' type='string' use='optional'/>
239 <element name='subjects'>
242 <element ref='explain:subject' maxOccurs='unbounded'/>
247 <element name='subject'>
248 <complexType mixed='true'>
252 <element name='links'>
255 <element ref='explain:link' maxOccurs='unbounded'/>
260 <element name='link'>
261 <complexType mixed='true'>
262 <attribute name='type' type='string' use='optional'/>
266 <element name='implementation'>
269 <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
271 <attribute name='identifier' type='string' use='optional'/>
272 <attribute name='version' type='string' use='optional'/>
276 <element name='metaInfo'>
279 <element ref='explain:dateModified'/>
280 <sequence minOccurs='0' maxOccurs='1'>
281 <element ref='explain:aggregatedFrom'/>
282 <element ref='explain:dateAggregated'/>
288 <element name='dateModified'>
289 <complexType mixed='true'>
293 <element name='aggregatedFrom'>
294 <complexType mixed='true'>
298 <element name='dateAggregated'>
299 <complexType mixed='true'>
303 <element name='indexInfo'>
305 <choice maxOccurs='unbounded'>
306 <element ref='explain:set'/>
307 <element ref='explain:index'/>
308 <element ref='explain:sortKeyword'/>
316 <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
318 <attribute name='name' type='string' use='required'/>
319 <attribute name='identifier' type='string' use='required'/>
323 <element name='index'>
326 <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
327 <element ref='explain:map' maxOccurs='unbounded'/>
328 <element ref='explain:configInfo' minOccurs='0' maxOccurs='1'/>
330 <attribute name='id' type='string' use='optional'/>
331 <attribute name='search' use='optional'>
333 <restriction base='string'>
334 <enumeration value='true'/>
335 <enumeration value='false'/>
339 <attribute name='scan' use='optional'>
341 <restriction base='string'>
342 <enumeration value='true'/>
343 <enumeration value='false'/>
347 <attribute name='sort' use='optional'>
349 <restriction base='string'>
350 <enumeration value='true'/>
351 <enumeration value='false'/>
358 <element name='sortKeyword'>
359 <complexType mixed='true'>
367 <element ref='explain:attr' maxOccurs='unbounded'/>
369 <element ref='explain:name'/>
371 <attribute name='primary' use='optional' default='false'>
373 <restriction base='string'>
374 <enumeration value='true'/>
375 <enumeration value='false'/>
382 <element name='name'>
383 <complexType mixed='true'>
384 <attribute name='set' type='string' use='optional'/>
388 <element name='attr'>
389 <complexType mixed='true'>
390 <attribute name='type' type='string' use='required'/>
391 <attribute name='set' type='string' use='optional' default='1.2.840.10003.3.1'/>
395 <element name='recordInfo'>
398 <element ref='explain:recordSyntax' maxOccurs='unbounded'/>
403 <element name='recordSyntax'>
406 <element ref='explain:elementSet' maxOccurs='unbounded'/>
408 <attribute name='name' type='string' use='optional'/>
409 <attribute name='identifier' type='string' use='optional'/>
413 <element name='elementSet'>
416 <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
418 <attribute name='name' type='string' use='required'/>
422 <element name='schemaInfo'>
425 <element ref='explain:schema' maxOccurs='unbounded'/>
430 <element name='schema'>
433 <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
435 <attribute name='identifier' type='string' use='required'/>
436 <attribute name='name' type='string' use='required'/>
437 <attribute name='location' type='string' use='optional'/>
438 <attribute name='sort' use='optional' default='false'>
440 <restriction base='string'>
441 <enumeration value='true'/>
442 <enumeration value='false'/>
446 <attribute name='retrieve' use='optional' default='true'>
448 <restriction base='string'>
449 <enumeration value='true'/>
450 <enumeration value='false'/>
457 <element name='configInfo'>
459 <choice minOccurs='0' maxOccurs='unbounded'>
460 <element ref='explain:default'/>
461 <element ref='explain:setting'/>
462 <element ref='explain:supports'/>
467 <element name='default'>
468 <complexType mixed='true'>
469 <attribute name='type' type='string' use='required'/>
473 <element name='setting'>
474 <complexType mixed='true'>
475 <attribute name='type' type='string' use='required'/>
479 <element name='supports'>
480 <complexType mixed='true'>
481 <attribute name='type' type='string' use='required'/>