1<?xml version="1.0" encoding="utf-8"?>
2<!--
3        X-road EU namespace: http://x-road.eu/xsd/x-road.xsd
4        03.04.2012: added xml:lang attributes to <xrd:title> elements
5        28.03.2013: improved language usage
6-->
7<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xrd="http://x-road.eu/xsd/x-road.xsd" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://x-road.eu/xsd/x-road.xsd">
8  <!-- prefiks xml -->
9  <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2009/01/xml.xsd" />
10  <!-- header elements an types -->
11  <complexType name="hdrstd">
12    <sequence>
13      <element ref="xrd:consumer" />
14      <element ref="xrd:producer" />
15      <element ref="xrd:userId" />
16      <element ref="xrd:id" />
17      <element ref="xrd:service" />
18      <element ref="xrd:issue" />
19    </sequence>
20  </complexType>
21  <element name="consumer" type="string">
22    <annotation>
23      <documentation>Service consumer code</documentation>
24    </annotation>
25  </element>
26  <element name="producer" type="string">
27    <annotation>
28      <documentation>Service producer code</documentation>
29    </annotation>
30  </element>
31  <element name="userId" type="string">
32    <annotation>
33      <documentation>Service user identification code with country code prefix (2-characters)</documentation>
34    </annotation>
35  </element>
36  <element name="id" type="string">
37    <annotation>
38      <documentation>Query id</documentation>
39    </annotation>
40  </element>
41  <element name="service" type="string">
42    <annotation>
43      <documentation>Query name</documentation>
44    </annotation>
45  </element>
46  <element name="issue" type="string">
47    <annotation>
48      <documentation>Query issue</documentation>
49    </annotation>
50  </element>
51  <element name="unit" type="string">
52    <annotation>
53      <documentation>Service user's unit code</documentation>
54    </annotation>
55  </element>
56  <element name="position" type="string">
57    <annotation>
58      <documentation>Service user postition name</documentation>
59    </annotation>
60  </element>
61  <element name="authenticator" type="string">
62    <annotation>
63      <documentation>Service user's authenticator</documentation>
64    </annotation>
65  </element>
66  <element name="userName" type="string">
67    <annotation>
68      <documentation>Service user full name</documentation>
69    </annotation>
70  </element>
71  <element name="async" type="boolean">
72    <annotation>
73      <documentation>Asynchroneous service flag</documentation>
74    </annotation>
75  </element>
76  <element name="encode" type="string">
77    <annotation>
78      <documentation>Name of encoder-db</documentation>
79    </annotation>
80  </element>
81  <!-- Elements describing other elements and operations-->
82  <element name="title">
83    <annotation>
84      <documentation>Title</documentation>
85    </annotation>
86    <complexType>
87      <simpleContent>
88        <extension base="string">
89          <attribute ref="xml:lang" default="en" />
90        </extension>
91      </simpleContent>
92    </complexType>
93  </element>
94  <element name="notes">
95    <annotation>
96      <documentation>Notes for user</documentation>
97    </annotation>
98    <complexType>
99      <simpleContent>
100        <extension base="string">
101          <attribute ref="xml:lang" default="en" />
102        </extension>
103      </simpleContent>
104    </complexType>
105  </element>
106  <element name="technotes">
107    <annotation>
108      <documentation>Notes for technical stuff</documentation>
109    </annotation>
110    <complexType>
111      <simpleContent>
112        <extension base="string">
113          <attribute ref="xml:lang" default="en" />
114        </extension>
115      </simpleContent>
116    </complexType>
117  </element>
118  <element name="ref" type="string">
119    <annotation>
120      <documentation>The element name of the element is associated</documentation>
121    </annotation>
122  </element>
123  <element name="wildcard">
124    <annotation>
125      <documentation>List of permitted wildcards</documentation>
126    </annotation>
127    <simpleType>
128      <restriction base="string">
129        <pattern value="[*?-PS]+" />
130      </restriction>
131    </simpleType>
132  </element>
133  <element name="version">
134    <annotation>
135      <documentation>Version</documentation>
136    </annotation>
137    <simpleType>
138      <restriction base="string">
139        <pattern value="v\d+" />
140      </restriction>
141    </simpleType>
142  </element>
143  <element name="nocontent" type="string">
144    <annotation>
145      <documentation>Meaning of empty fields</documentation>
146    </annotation>
147  </element>
148  <element name="requirecontent" type="string">
149    <annotation>
150      <documentation>Meaning of empty fields</documentation>
151    </annotation>
152  </element>
153  <element name="address">
154    <annotation>
155      <documentation>Port address</documentation>
156    </annotation>
157    <complexType>
158      <attribute name="producer" type="string" />
159    </complexType>
160  </element>
161  <complexType name="legacy_response">
162    <sequence>
163      <element name="url" type="xrd:url">
164        <annotation>
165          <appinfo>
166            <xrd:title xml:lang="et">Infosüsteemi sissepääsu URL</xrd:title>
167            <xrd:title xml:lang="en">URL for entering external portal</xrd:title>
168          </appinfo>
169        </annotation>
170      </element>
171    </sequence>
172  </complexType>
173  <!-- Mittetehniline veateade -->
174  <complexType name="invalidInput">
175    <sequence>
176      <element name="faultCode" type="string">
177        <annotation>
178          <appinfo>
179            <xrd:title xml:lang="et">Kood</xrd:title>
180            <xrd:title xml:lang="en">Code</xrd:title>
181          </appinfo>
182        </annotation>
183      </element>
184      <element name="faultString" type="string">
185        <annotation>
186          <appinfo>
187            <xrd:title xml:lang="et">Teade</xrd:title>
188            <xrd:title xml:lang="en">Error message</xrd:title>
189          </appinfo>
190        </annotation>
191      </element>
192    </sequence>
193  </complexType>
194  <!-- Tüübid -->
195  <simpleType name="jpg">
196    <annotation>
197      <appinfo>
198        <xrd:title xml:lang="et">Pilt (JPEG)</xrd:title>
199        <xrd:title xml:lang="en">JPEG picture</xrd:title>
200      </appinfo>
201    </annotation>
202    <restriction base="base64Binary" />
203  </simpleType>
204  <simpleType name="gif">
205    <annotation>
206      <appinfo>
207        <xrd:title xml:lang="et">Pilt (GIF)</xrd:title>
208        <xrd:title xml:lang="en">GIF picture</xrd:title>
209      </appinfo>
210    </annotation>
211    <restriction base="base64Binary" />
212  </simpleType>
213  <simpleType name="xml">
214    <annotation>
215      <appinfo>
216        <xrd:title xml:lang="et">XMLina kasutatav tekst</xrd:title>
217        <xrd:title xml:lang="en">Text as XML</xrd:title>
218      </appinfo>
219    </annotation>
220    <restriction base="string" />
221  </simpleType>
222  <simpleType name="txt">
223    <annotation>
224      <appinfo>
225        <xrd:title xml:lang="et">Tekstifail</xrd:title>
226        <xrd:title xml:lang="en">Text file</xrd:title>
227      </appinfo>
228    </annotation>
229    <restriction base="string" />
230  </simpleType>
231  <simpleType name="csv">
232    <annotation>
233      <appinfo>
234        <xrd:title xml:lang="et">CSV-vormingus fail</xrd:title>
235        <xrd:title xml:lang="en">CSV file</xrd:title>
236      </appinfo>
237    </annotation>
238    <restriction base="string" />
239  </simpleType>
240  <simpleType name="maakond">
241    <annotation>
242      <appinfo>
243        <xrd:title xml:lang="et">Maakond</xrd:title>
244        <xrd:title xml:lang="en">County</xrd:title>
245        <xrd:technotes>County code in Estonian Administrative and Settlement Classification (EHAK)</xrd:technotes>
246      </appinfo>
247    </annotation>
248    <restriction base="string">
249      <pattern value="\d{4}" />
250    </restriction>
251  </simpleType>
252  <simpleType name="vald">
253    <annotation>
254      <appinfo>
255        <xrd:title xml:lang="et">Vald</xrd:title>
256        <xrd:title xml:lang="en">Parish</xrd:title>
257        <xrd:technotes>Parish code in Estonian Administrative and Settlement Classification (EHAK)</xrd:technotes>
258      </appinfo>
259    </annotation>
260    <restriction base="string">
261      <pattern value="\d{4}" />
262    </restriction>
263  </simpleType>
264  <simpleType name="asula">
265    <annotation>
266      <appinfo>
267        <xrd:title xml:lang="et">Asula</xrd:title>
268        <xrd:title xml:lang="en">Village</xrd:title>
269        <xrd:technotes>Village code in Estonian Administrative and Settlement Classification (EHAK)</xrd:technotes>
270      </appinfo>
271    </annotation>
272    <restriction base="string">
273      <pattern value="\d{4}" />
274    </restriction>
275  </simpleType>
276  <simpleType name="ehak">
277    <annotation>
278      <appinfo>
279        <xrd:title xml:lang="et">Haldusüksus</xrd:title>
280        <xrd:title xml:lang="en">Unit</xrd:title>
281        <xrd:technotes>Unit code in Estonian Administrative and Settlement Classification (EHAK). Could be County, Parish or Village</xrd:technotes>
282      </appinfo>
283    </annotation>
284    <restriction base="string">
285      <pattern value="\d{4}" />
286    </restriction>
287  </simpleType>
288  <simpleType name="url">
289    <annotation>
290      <appinfo>
291        <xrd:title xml:lang="et">Link</xrd:title>
292        <xrd:title xml:lang="en">Link</xrd:title>
293        <xrd:technotes>WWW URL</xrd:technotes>
294      </appinfo>
295    </annotation>
296    <restriction base="anyURI" />
297  </simpleType>
298  <complexType name="ArrayOfString">
299    <sequence>
300      <element name="item" type="string" minOccurs="0" maxOccurs="unbounded" />
301    </sequence>
302  </complexType>
303  <attribute name="sensitive" type="boolean" />
304  <!--listMethods - meta-service for db adapter: returns list of all implemented queries-->
305  <element name="listMethods" nillable="true" />
306  <element name="listMethodsResponse">
307    <complexType>
308      <sequence>
309        <element name="response">
310          <complexType>
311            <sequence>
312              <element name="item" type="string" minOccurs="0" maxOccurs="unbounded" />
313            </sequence>
314          </complexType>
315        </element>
316      </sequence>
317    </complexType>
318  </element>
319  <!--testSystem - meta-service for db adapter: checks system status -->
320  <element name="testSystem" nillable="true" />
321  <element name="testSystemResponse" nillable="true" />
322  <!-- unitValid (service for xroad portal),  checks if the unit is valid at the current moment-->
323  <complexType name="unitValid">
324    <sequence>
325      <element name="request">
326        <complexType>
327          <sequence>
328            <element name="unitCode" type="string">
329              <annotation>
330                <appinfo>
331                  <xrd:title xml:lang="et">Üksuse kood</xrd:title>
332                  <xrd:title xml:lang="en">Unit code</xrd:title>
333                </appinfo>
334              </annotation>
335            </element>
336          </sequence>
337        </complexType>
338      </element>
339    </sequence>
340  </complexType>
341  <complexType name="unitValidResponse">
342    <sequence>
343      <element name="request">
344        <complexType>
345          <sequence>
346            <element name="unitCode" type="string" />
347          </sequence>
348        </complexType>
349      </element>
350      <element name="response">
351        <complexType>
352          <all>
353            <element name="isValid" type="boolean">
354              <annotation>
355                <appinfo>
356                  <xrd:title xml:lang="et">Kas üksus kehtib</xrd:title>
357                  <xrd:title xml:lang="en">Is unit valid at the moment</xrd:title>
358                </appinfo>
359              </annotation>
360            </element>
361            <element name="name" type="string">
362              <annotation>
363                <appinfo>
364                  <xrd:title xml:lang="et">Üksuse nimi</xrd:title>
365                  <xrd:title xml:lang="en">Unit name</xrd:title>
366                </appinfo>
367              </annotation>
368            </element>
369          </all>
370        </complexType>
371      </element>
372    </sequence>
373  </complexType>
374  <!--unitRepresent (service for xroad portal) returns units, the person is allowed to represent -->
375  <complexType name="unitRepresent">
376    <sequence>
377      <element name="request">
378        <complexType>
379          <sequence>
380            <element name="personCode" type="string">
381              <annotation>
382                <appinfo>
383                  <xrd:title xml:lang="et">Isikukood</xrd:title>
384                  <xrd:title xml:lang="en">Person SSN</xrd:title>
385                </appinfo>
386              </annotation>
387            </element>
388          </sequence>
389        </complexType>
390      </element>
391    </sequence>
392  </complexType>
393  <complexType name="unitRepresentResponse">
394    <sequence>
395      <element name="request">
396        <complexType>
397          <sequence>
398            <element name="personCode" type="string" />
399          </sequence>
400        </complexType>
401      </element>
402      <element name="response">
403        <complexType>
404          <sequence>
405            <element name="item" minOccurs="0" maxOccurs="unbounded">
406              <complexType>
407                <all>
408                  <element name="unitCode" type="string">
409                    <annotation>
410                      <appinfo>
411                        <xrd:title xml:lang="et">Üksuse kood</xrd:title>
412                        <xrd:title xml:lang="en">Unit code</xrd:title>
413                      </appinfo>
414                    </annotation>
415                  </element>
416                  <element name="name" type="string">
417                    <annotation>
418                      <appinfo>
419                        <xrd:title xml:lang="et">Üksuse nimi</xrd:title>
420                        <xrd:title xml:lang="en">Unit name</xrd:title>
421                      </appinfo>
422                    </annotation>
423                  </element>
424                </all>
425              </complexType>
426            </element>
427          </sequence>
428        </complexType>
429      </element>
430    </sequence>
431  </complexType>
432  <!-- query for loading classifications to X-road portal-->
433  <element name="loadClassification">
434    <complexType>
435      <sequence>
436        <element name="request" nillable="true">
437          <complexType>
438            <sequence>
439              <element name="name" type="string" nillable="true">
440                <annotation>
441                  <appinfo>
442                    <xrd:title xml:lang="et">Nimi</xrd:title>
443                    <xrd:title xml:lang="en">Name</xrd:title>
444                  </appinfo>
445                </annotation>
446              </element>
447              <element name="subset" type="string" nillable="true">
448                <annotation>
449                  <appinfo>
450                    <xrd:title xml:lang="et">Alamhulk</xrd:title>
451                    <xrd:title xml:lang="en">Subset</xrd:title>
452                  </appinfo>
453                </annotation>
454              </element>
455              <element name="from" type="date" nillable="true">
456                <annotation>
457                  <appinfo>
458                    <xrd:title xml:lang="et">Alates</xrd:title>
459                    <xrd:title xml:lang="en">From</xrd:title>
460                  </appinfo>
461                </annotation>
462              </element>
463              <element name="max" type="string" nillable="true">
464                <annotation>
465                  <appinfo>
466                    <xrd:title xml:lang="et">Maksimaalne arv</xrd:title>
467                    <xrd:title xml:lang="en">Max count</xrd:title>
468                  </appinfo>
469                </annotation>
470              </element>
471            </sequence>
472          </complexType>
473        </element>
474      </sequence>
475    </complexType>
476  </element>
477  <element name="loadClassificationResponse">
478    <complexType>
479      <sequence>
480        <element name="request" nillable="true">
481          <complexType>
482            <sequence>
483              <element name="name" type="string" nillable="true" />
484              <element name="subset" type="string" nillable="true" />
485              <element name="from" type="date" nillable="true" />
486              <element name="max" type="string" nillable="true" />
487            </sequence>
488          </complexType>
489        </element>
490        <element name="response">
491          <complexType>
492            <sequence>
493              <element name="classificationNames" nillable="true">
494                <complexType>
495                  <sequence>
496                    <element name="item" type="string" minOccurs="0" maxOccurs="unbounded">
497                      <annotation>
498                        <appinfo>
499                          <xrd:title xml:lang="et">Nimi</xrd:title>
500                          <xrd:title xml:lang="en">Name</xrd:title>
501                        </appinfo>
502                      </annotation>
503                    </element>
504                  </sequence>
505                </complexType>
506              </element>
507              <element name="classifications" nillable="true">
508                <complexType>
509                  <sequence>
510                    <any minOccurs="0" maxOccurs="unbounded" />
511                  </sequence>
512                </complexType>
513              </element>
514              <element name="faultCode" type="xrd:faultCode" nillable="true" />
515              <element name="faultString" type="xrd:faultString" nillable="true" />
516            </sequence>
517          </complexType>
518        </element>
519      </sequence>
520    </complexType>
521  </element>
522  <!-- userAllowedMethods service returns user permissions from X-road portal -->
523  <element name="userAllowedMethods">
524    <complexType>
525      <sequence>
526        <element name="request">
527          <complexType>
528            <sequence>
529              <element name="personCode" type="string" nillable="true">
530                <annotation>
531                  <appinfo>
532                    <xrd:title xml:lang="et">Isikukood</xrd:title>
533                    <xrd:title xml:lang="en">Person SSN</xrd:title>
534                  </appinfo>
535                </annotation>
536              </element>
537            </sequence>
538          </complexType>
539        </element>
540      </sequence>
541    </complexType>
542  </element>
543  <element name="userAllowedMethodsResponse">
544    <complexType>
545      <sequence>
546        <element name="request" nillable="true">
547          <complexType>
548            <sequence>
549              <element name="personCode" type="string" nillable="true" />
550            </sequence>
551          </complexType>
552        </element>
553        <element name="response">
554          <complexType>
555            <sequence>
556              <element name="person" nillable="true" maxOccurs="unbounded">
557                <complexType>
558                  <sequence>
559                    <element name="personCode" type="string">
560                      <annotation>
561                        <appinfo>
562                          <xrd:title xml:lang="et">Isikukood</xrd:title>
563                          <xrd:title xml:lang="en">Person identification code</xrd:title>
564                        </appinfo>
565                      </annotation>
566                    </element>
567                    <element name="orgQuery" nillable="true" maxOccurs="unbounded">
568                      <complexType>
569                        <sequence>
570                          <element name="orgCode" type="string">
571                            <annotation>
572                              <appinfo>
573                                <xrd:title xml:lang="et">Asutuse kood</xrd:title>
574                                <xrd:title xml:lang="en">Organization code</xrd:title>
575                              </appinfo>
576                            </annotation>
577                          </element>
578                          <element name="orgName" type="string">
579                            <annotation>
580                              <appinfo>
581                                <xrd:title xml:lang="et">Asutuse nimi</xrd:title>
582                                <xrd:title xml:lang="en">Organization name</xrd:title>
583                              </appinfo>
584                            </annotation>
585                          </element>
586                          <element name="query" minOccurs="0" maxOccurs="unbounded">
587                            <complexType>
588                              <sequence>
589                                <element name="queryName" type="string">
590                                  <annotation>
591                                    <appinfo>
592                                      <xrd:title xml:lang="et">Päringu nimi</xrd:title>
593                                      <xrd:title xml:lang="en">Query name</xrd:title>
594                                    </appinfo>
595                                  </annotation>
596                                </element>
597                                <element name="validUntil" type="date" nillable="true">
598                                  <annotation>
599                                    <appinfo>
600                                      <xrd:title xml:lang="et">Kehtib kuupäevani</xrd:title>
601                                      <xrd:title xml:lang="en">Permission valid until date</xrd:title>
602                                    </appinfo>
603                                  </annotation>
604                                </element>
605                              </sequence>
606                            </complexType>
607                          </element>
608                        </sequence>
609                      </complexType>
610                    </element>
611                  </sequence>
612                </complexType>
613              </element>
614              <element name="faultCode" type="xrd:faultCode" nillable="true" />
615              <element name="faultString" type="xrd:faultString" nillable="true" />
616            </sequence>
617          </complexType>
618        </element>
619      </sequence>
620    </complexType>
621  </element>
622  <!-- Non-technical error  -->
623  <simpleType name="faultCode">
624    <annotation>
625      <appinfo>
626        <xrd:title xml:lang="et">Kood</xrd:title>
627        <xrd:title xml:lang="en">Code</xrd:title>
628      </appinfo>
629    </annotation>
630    <restriction base="string" />
631  </simpleType>
632  <simpleType name="faultString">
633    <annotation>
634      <appinfo>
635        <xrd:title xml:lang="et">Teade</xrd:title>
636        <xrd:title xml:lang="en">Error message</xrd:title>
637      </appinfo>
638    </annotation>
639    <restriction base="string" />
640  </simpleType>
641</schema>
642