-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschema.xsd
162 lines (154 loc) · 8.85 KB
/
schema.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
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
elementFormDefault="qualified"
targetNamespace="https://github.com/MUCI/emrex-elmo-extensions/tree/stable-v1"
xmlns="https://github.com/MUCI/emrex-elmo-extensions/tree/stable-v1"
>
<xs:import
schemaLocation="http://www.w3.org/2001/03/xml.xsd"
namespace="http://www.w3.org/XML/1998/namespace"
/>
<xs:annotation>
<xs:documentation>
This schema describes the USOS extensions to the EMREX ELMO format. More information
can be found here:
https://github.com/MUCI/emrex-elmo-extensions
</xs:documentation>
</xs:annotation>
<xs:element name="globalMeta">
<xs:annotation>
<xs:documentation>
This optional element is supposed to be included in the `/elmo/extension`
element.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="usoswebVersion" type="xs:string">
<xs:annotation>
<xs:documentation>
Version number of the application which has generated the NCP response.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="extraNcpRequestParams" minOccurs="0">
<xs:annotation>
<xs:documentation>
Values of the additional NCP parameters, as described in the README.md file.
These values MAY be included even when no actual values were passed to the NCP
(in this case, they will contain the fixed versions of their default values).
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="allowToPickCourses" type="xs:boolean"/>
<xs:element name="allowNotPassedCourses" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="loiMeta">
<xs:annotation>
<xs:documentation>
This optional element is supposed to be included in the
`//learningOpportunityInstance/extension` elements.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="examReport" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
In USOS model, multiple exam reports can be bound with a single LOI. This may
result in multiple grades for a single course.
This means that - currently - <learningOpportunityInstance/resultLabel>
element MAY contain multiple grade labels (separated with spaces). We have no
way of determining which one of these grades is the one that the reader is
looking for, so we will have to include them all (same goes for the generated
PDFs). If `loiMeta` element exists, but no `examReport` elements do, then it
means that no exam reports were assigned for this course yet.
This element describes this model, along with some additional data.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of this exam report (most probably in Polish).
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="session" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Grades can change in time, as each exam consists of a couple of exam sessions.
This element describes a single session. The final grade for the exam report is
taken from the *last* of the sessions.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="number" type="xs:positiveInteger">
<xs:annotation>
<xs:documentation>
Number of the exam session (usually 1, 2 or 3).
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="name" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
The name of this exam session (most probably in Polish).
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="resultLabel" type="xs:string">
<xs:annotation>
<xs:documentation>
The grade acquired during this particular session.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="possibleResultLabels" minOccurs="0">
<xs:annotation>
<xs:documentation>
Full list of all possible resultLabel values, for this particular LOI. In USOS,
resultLabels are always enumerations (as opposed to, say, floats). Including
this information might make it easier for other USOS system to import the
grade (by comparing this enumeration with other enumerations defined locally).
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="possibleLabel" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="resultLabel" type="xs:string"/>
<xs:element name="isPassing" type="xs:boolean">
<xs:annotation>
<xs:documentation>
True, if this particular grade allows to pass the course.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>