-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathget-response.xsd
737 lines (677 loc) · 39.8 KB
/
get-response.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
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:p="https://github.com/erasmus-without-paper/ewp-specs-types-phonenumber/tree/stable-v1"
xmlns:course="https://github.com/erasmus-without-paper/ewp-specs-api-courses/tree/stable-v1"
xmlns:trm="https://github.com/erasmus-without-paper/ewp-specs-types-academic-term/tree/stable-v2"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:ewp="https://github.com/erasmus-without-paper/ewp-specs-architecture/blob/stable-v1/common-types.xsd"
elementFormDefault="qualified"
targetNamespace="https://github.com/erasmus-without-paper/ewp-specs-api-omobility-las/blob/stable-v1/endpoints/get-response.xsd"
xmlns="https://github.com/erasmus-without-paper/ewp-specs-api-omobility-las/blob/stable-v1/endpoints/get-response.xsd"
>
<xs:import
schemaLocation="https://raw.githubusercontent.com/erasmus-without-paper/ewp-specs-architecture/stable-v1/common-types.xsd"
namespace="https://github.com/erasmus-without-paper/ewp-specs-architecture/blob/stable-v1/common-types.xsd"
/>
<xs:import
schemaLocation="https://raw.githubusercontent.com/erasmus-without-paper/ewp-specs-types-phonenumber/stable-v1/schema.xsd"
namespace="https://github.com/erasmus-without-paper/ewp-specs-types-phonenumber/tree/stable-v1"
/>
<xs:import
schemaLocation="https://raw.githubusercontent.com/erasmus-without-paper/ewp-specs-api-courses/master/response.xsd"
namespace="https://github.com/erasmus-without-paper/ewp-specs-api-courses/tree/stable-v1"
/>
<xs:import
schemaLocation="https://raw.githubusercontent.com/erasmus-without-paper/ewp-specs-types-academic-term/stable-v2/schema.xsd"
namespace="https://github.com/erasmus-without-paper/ewp-specs-types-academic-term/tree/stable-v2"
/>
<xs:annotation>
<xs:documentation>
This schema is a part of the Erasmus Without Paper project. Before you start
using it, make sure you have read the general rules described here:
http://developers.erasmuswithoutpaper.eu/
</xs:documentation>
</xs:annotation>
<xs:element name="omobility-las-get-response">
<xs:annotation>
<xs:documentation>
This describes the format of the response returned by the EWP Outgoing
Mobility Learning Agreements API.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="la" type="LearningAgreement" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
This represents a single Learning Agreement.
Immutable elements
------------------
Every mobility has its unique sending-hei, receiving-hei and nominee, which
MUST NOT change after the mobility is created. For example, if it turns out
that a different student will be nominated for this mobility, then a new
omobility-id MUST be created for such nomination. However, the properties of
these mobility-related entities still MAY change. E.g. the student's name may
get updated.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="LearningAgreement">
<xs:sequence>
<xs:element name="omobility-id" type="ewp:AsciiPrintableIdentifier" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Identifier of the mobility (as assigned by the sending HEI). Immutable.
If the HEI also implement the Outgoing Mobilities API, the omobility-id
for the given mobility MUST be the same in both APIs.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="sending-hei" type="MobilityInstitution" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
This describes the sending HEI - the home institution of the student being sent.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="receiving-hei" type="MobilityInstitution" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
This describes the receiving HEI - the institution which will be hosting the student.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="receiving-academic-year-id" type="trm:AcademicYearId" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Academic year during which this mobility takes place (or is supposed to take
place).
Note, that sending and receiving HEIs MAY use different academic year
identifiers (e.g. "2010/2011" vs. "2010/2010" or "2011/2011"). This
particular identifier is the year identifier at the *receiving* HEI, not the
sending HEI.
This means that the sending HEI MUST know how the receiving HEI identifies its
academic years (i.e. whether it lies on the northern or southern hemisphere),
and be able to match its mobilities with these identifiers.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="student"/>
<xs:choice>
<xs:annotation>
<xs:documentation>
Planned start date of the mobility (when the student is supposed to arrive).
Note: There are two elements to choose from as the day is optional.
</xs:documentation>
</xs:annotation>
<xs:element name="start-date" type="xs:date" minOccurs="1" maxOccurs="1"/>
<xs:element name="start-year-month" type="xs:gYearMonth" minOccurs="1" maxOccurs="1"/>
</xs:choice>
<xs:choice>
<xs:annotation>
<xs:documentation>
Planned end date of the mobility (when the student is supposed to leave).
Note: There are two elements to choose from as the day is optional.
</xs:documentation>
</xs:annotation>
<xs:element name="end-date" type="xs:date" minOccurs="1" maxOccurs="1"/>
<xs:element name="end-year-month" type="xs:gYearMonth" minOccurs="1" maxOccurs="1"/>
</xs:choice>
<xs:element name="eqf-level-studied-at-departure" type="ewp:EqfLevel" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The student is sent for the mobility as part of one of his study programmes.
This field contains the student's EQF level on this programme *at the time of
the departure*.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="isced-f-code" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The student is sent to the mobility as part of one of his study programmes.
This field contains the ISCED-F field of education code that is closest to the
subject of this programme (or, as EUC put is, "closest to the degree to be awarded
to the student by the Sending Institution").
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="isced-clarification" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
This field contains additional details regarding `isced-f-code` field.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="student-language-skill" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The level of language competence in the main language of instruction
that the student already has or agrees to acquire by the start of the study period.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="language" type="xs:language" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The BCP 47 code of the language.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="cefr-level" type="ewp:CefrLevel" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The level of language skill.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="first-version" type="ListOf_Components" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The snapshot of courses *planned* to be studied when the first version of the LA
is signed.
Note: If this element is not provided than you MUST provide `changes-proposal`.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="approved-changes" type="ListOf_Components" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The latest approved list of changes to the `first-version` of LA.
Note: This element describes what Tables A2, B2, C2 of the LA template.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="changes-proposal" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
This element is required to propose changes to the LA to be accepted by the partner.
It contains proposal of the `first-version` of LA or changes to it after it is approved.
It may also contain student's data that has changed after the last receiving HEI's approval.
Note: Blended mobilities with short-term physical mobility and short-term doctoral mobilities
MUST NOT have any proposals of changes after `first-version` of LA has been agreed.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="ListOf_Components">
<xs:sequence>
<xs:element ref="student" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
This element represents the student's personal data that has changed after
the last receiving HEI's approval.
Note: Only those fields that have changed should be present here.
Changes to the following fields are considered as important and should be
mentioned here: `given-names`, `family-name`, `global-id`, `birth-date`.
Other fields may change without the need to issue a proposal.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Identifier of this version of `changes-proposal`. It MUST change if and only if
the changes proposal content changes. You can eg. normalize the changes-proposal
element using Exclusive XML Canonicalization and than calculate a hash.
It will be used in update request to identify the version being approved/commented.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="learning-outcomes-url" minOccurs="0" maxOccurs="1" type="ewp:HTTP">
<xs:annotation>
<xs:documentation>
URL to the course catalogue at the receiving HEI describing the learning outcomes.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="provisions-url" minOccurs="0" maxOccurs="1" type="ewp:HTTP">
<xs:annotation>
<xs:documentation>
URL to provisions applying if the student does not complete successfully some educational components.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="component">
<xs:annotation>
<xs:documentation>
This describes a single entry on the list of components (studied or recognized).
In the descriptions of subelements we will use the term "component owner", which means
receiving HEI for the component studied and sending HEI for the component recognized.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="los-id" type="course:LosID" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The EWP's LOS ID of the component, exactly as exposed via the component owner's
Courses API. Please note, that it is USUALLY NOT the same as the "Component Code"
present on the EUC template (compare with `los-code` element).
https://github.com/erasmus-without-paper/ewp-specs-api-courses#unique-identifiers
If the field is given (either by you, or by the partner HEI), then the
values of many other fields can be derived from (copied from) the matching
values served by the Courses API.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="los-code" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
This is the optional component code to be displayed to the end user. This field
MAY be entered "by hand" (for example by the student), especially if no
`los-id` is given. It might assist other users (and/or computer systems) when
they're trying to identify the component, but it does not necessarilly contain
a valid EWP's LOS ID used in the Courses API.
In case of many HEIs, it will be equal to the LOS ID provided above, but it's
purpose is entirely different. LOS IDs are surrogate identifiers (and, as such,
should not be displayed to the user), while LOS codes are "human readable", but
don't they are *not used* to identify entities in EWP network.
Related links:
https://github.com/erasmus-without-paper/ewp-specs-api-omobilities/issues/9
https://en.wikipedia.org/wiki/Surrogate_key
https://en.wikipedia.org/wiki/Natural_key
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="title" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Component title. This field MAY be entered "by
hand" (for example by the student), especially if no `los-id` is given. It
might assist other users (and/or computer systems) when they're trying to
identify the component, but it does not necessarilly match the name exactly.
Note, that this field does not contain an `xml:lang` attribute, and it can be
provided only once (preferably in English). If clients want to retrieve titles
in other languages, then they can do this via the Courses API.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="loi-id" type="course:LoiID" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The EWP's LOI ID of the component, exactly as exposed via the Courses API.
https://github.com/erasmus-without-paper/ewp-specs-api-courses#unique-identifiers
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="term-id" type="trm:TermId" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Academic term of the LOI at the component owner institution.
This field is required in 'components-studied' and 'components-recognized' but optional
in 'virtual-components'.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="credit" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
This describes various credit types which the student is expected to achieve by
completing this component. Usually these SHOULD be ECTS credits, but there MAY
be some exceptions.
Note: If there are no credits, then credit evaluation is not applicable for that component.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="scheme" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Currently there is only one predefined scheme you can have here - "ects"
(lowercase).
You can also include any number of other credits with custom schemes.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="value" type="xs:decimal" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The number of credits being awarded.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="recognition-conditions" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
The conditions that have to be met to recognize this component by the sending HEI.
This field MUST NOT be provided for components in `components-studied`.
If this field is defined then it means that this component will not be automatically
recognized. This field SHOULD NOT be set otherwise.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="short-description" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Short description of the virtual component.
This field:
* MUST be provided for all components in `virtual-components`,
* MUST be provided for at least one component in `blended-mobility-components`,
* MAY be provided for components in `short-term-doctoral-components`,
* MUST NOT be provided for other components.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="status" use="optional">
<xs:annotation>
<xs:documentation>
Status of the component. MUST be provided if the component represents a change and MUST NOT be
provided otherwise.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="inserted">
<xs:annotation>
<xs:documentation>
This status means that the component has been added after the `first-version` of LA.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="deleted">
<xs:annotation>
<xs:documentation>
This status means that the component has been deleted after the `first-version` of LA.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="reason-code" use="optional">
<xs:annotation>
<xs:documentation>
An optional reason for the change.
If the element represents the change (the "status" attribute is not empty),
than the reason of the change (code or text, or both) SHOULD be provided.
If the reason matches one of the reasons provided in the enumeration below,
than it is RECOMMENDED to provide the code. Otherwise the code MUST NOT be provided
and the text description of the reason (`reason-text`) SHOULD be provided.
UI designers are advised to supply a number of suggested reasons for their
users (so that they can pick one when making the change). Users SHOULD be
allowed to specify their own custom reason for the change too (`reason-text`).
IMPORTANT: New values MAY be added to this enumeration in future releases of
this API, and such expansion is considered backward-compatible. Clients MUST be
aware of this fact - if you find an unknown value here, you MUST treat it the
same way as if no `reason-code` was given at all. Server MUST NOT expand
their set of used reason codes without consulting EWP Partners - new reason
codes MUST be added to the enumeration before they can be used.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="not-available">
<xs:annotation>
<xs:documentation>
Defined by EUC with the following description: Previously selected educational
component is not available at the Receiving Institution.
This reason MUST be used ONLY for "delete" changes.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="language-mismatch">
<xs:annotation>
<xs:documentation>
Defined by EUC with the following description: Component is in a different
language than previously specified in the course catalogue.
This reason MUST be used ONLY for "delete" changes.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="timetable-conflict">
<xs:annotation>
<xs:documentation>
Defined by EUC with the following description: Timetable conflict.
This reason MUST be used ONLY for "delete" changes.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="substituting-deleted">
<xs:annotation>
<xs:documentation>
Defined by EUC with the following description: Substituting a deleted component.
This reason MUST be used ONLY for "insert" changes.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="extending-mobility">
<xs:annotation>
<xs:documentation>
Defined by EUC with the following description: Extending the mobility period.
This reason MUST be used ONLY for "insert" changes.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="adding-virtual-component">
<xs:annotation>
<xs:documentation>
Defined by EUC with the following description: Adding a virtual component.
This reason MUST be used ONLY for "insert" changes.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="reason-text" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
A human-readable description of the reason - preferably in English.
This element corresponds to "Reason for change" column of A2 or B2 table (see EUC LA template).
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:complexType name="ListOf_Components">
<xs:annotation>
<xs:documentation>
Describes a list of components that make up various tables in LA.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="components-studied" type="ComponentList" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
List of components studied (or planned to be studied) at the receiving HEI.
Note: This element corresponds to "Table A" or "Table A2" on the EUC LA template
and is required for semester(s) type mobilities.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="components-recognized" type="ComponentList" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
List of components recognized (or planned to be recognized) at the sending HEI.
Note: This element corresponds to "Table B" or "Table B2" on the EUC LA template
and is required for semester(s) type mobilities.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="virtual-components" type="ComponentList" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
List of virtual components studied (or planned to be studied) at the receiving HEI.
Note: This element corresponds to "Table C" or "Table C2" on the EUC LA template.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="blended-mobility-components" type="ComponentList" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
List of components studied (or planned to be studied) at the receiving HEI.
Note: This element is present only for blended mobilities with short-term physical mobility.
If present it MUST contain at least one component.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="short-term-doctoral-components" type="ComponentList" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
List of components studied (or planned to be studied) at the receiving HEI.
Note: This element is present only for short-term doctoral mobilities.
If present it MUST contain at least one component.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="student-signature" minOccurs="1" maxOccurs="1" type="Signature"/>
<xs:element name="sending-hei-signature" minOccurs="1" maxOccurs="1" type="Signature"/>
<xs:element name="receiving-hei-signature" minOccurs="0" maxOccurs="1" type="Signature">
<xs:annotation>
<xs:documentation>
This field is optional only inside `changes-proposal` element and required otherwise.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ComponentList">
<xs:sequence>
<xs:element ref="component" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="student">
<xs:annotation>
<xs:documentation>
The section describes the student who is being sent for this mobility.
Note: All fields are optional only inside `changes-proposal` element and required otherwise!
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="given-names" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="family-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="global-id" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Global student identifier. Should follow the specification of the
European Student Identifier
(https://wiki.geant.org/display/SM/European+Student+Identifier).
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="birth-date" type="xs:date" minOccurs="0" maxOccurs="1"/>
<xs:element name="citizenship" type="ewp:CountryCode" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Code of the country to which the person belongs administratively and that
issues the ID card and/or passport.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="gender" type="ewp:Gender" minOccurs="0" maxOccurs="1"/>
<xs:element name="email" type="ewp:Email" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="MobilityInstitution">
<xs:sequence>
<xs:element name="hei-id" type="xs:string" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
SCHAC ID of the institution. Immutable.
https://github.com/erasmus-without-paper/ewp-specs-api-registry/#schac-identifiers
Clients can fetch more information on this HEI from the Institutions API
served on the HEI's servers.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ounit-name" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Organizational unit name. It refers to the unit, which is responsible for this student.
It MUST be provided for the sending HEI.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ounit-id" type="ewp:AsciiPrintableIdentifier" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Organizational unit ID. It refers to the unit, which is responsible for this student.
It is RECOMMENDED to provide it. It allows the client to fetch more information
on this unit from the Organizational Units API or map it with the unit kept in the local database.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="contact-person" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Person who provides a link for administrative information and who,
depending on the structure of the higher education institution, may be the departmental coordinator
or works at the international relations office or equivalent body within the institution.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="given-names" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="family-name" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="email" type="ewp:Email" minOccurs="1" maxOccurs="1"/>
<xs:element ref="p:phone-number" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Signature">
<xs:sequence>
<xs:element name="signer-name" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Full name of the person signing.
Note: this field SHOULD NOT be set for `student-signature` element and MUST be set otherwise.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="signer-position" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Position held by the signing person.
Note: this field SHOULD NOT be set for `student-signature` element and MUST be set otherwise.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="signer-email" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
E-mail of the signing person.
Note: this field SHOULD NOT be set for `student-signature` element and MUST be set otherwise.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="timestamp" type="xs:dateTime" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Date and time when the signature took place.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="signer-app" type="xs:string" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Name of the application where the signature has been created.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>