Project

General

Profile

1
<?xml version="1.0" encoding="UTF-8"?>
2
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3
    <xs:element name="RESOURCE_PROFILE">
4
        <xs:complexType>
5
            <xs:sequence>
6
                <xs:element name="HEADER" type="HEADERType"/>
7
                <xs:element name="BODY" type="BODYType"/>
8
            </xs:sequence>
9
        </xs:complexType>
10
    </xs:element>
11
    <xs:complexType name="HEADERType">
12
        <xs:all>
13
            <xs:element name="RESOURCE_IDENTIFIER" type="RESOURCE_IDENTIFIERType"/>
14
            <xs:element name="RESOURCE_TYPE" type="RESOURCE_TYPEType"/>
15
            <xs:element name="RESOURCE_KIND" type="RESOURCE_KINDType"/>
16
            <xs:element name="RESOURCE_URI" type="RESOURCE_URIType"/>
17
            <xs:element name="DATE_OF_CREATION" type="DATE_OF_CREATIONType"/>
18
            <xs:element name="PROTOCOL" type="xs:string"/>
19
        </xs:all>
20
    </xs:complexType>
21
    <xs:complexType name="BODYType">
22
        <xs:sequence>
23
            <xs:element name="CONFIGURATION" type="CONFIGURATION"/>
24
            <xs:element name="STATUS" type="STATUS"/>
25
            <xs:element name="QOS" type="QOS"/>
26
            <xs:element name="SECURITY_PARAMETERS" type="xs:string"/>
27
            <xs:element name="BLACKBOARD" type="BLACKBOARD"/>
28
        </xs:sequence>
29
    </xs:complexType>
30
    <xs:complexType name="BLACKBOARD">
31
        <xs:sequence>
32
            <xs:element name="LAST_REQUEST" type="xs:string" minOccurs="0" maxOccurs="1"/>
33
            <xs:element name="LAST_RESPONSE" type="xs:string" minOccurs="0" maxOccurs="1"/>
34
            <xs:element name="MESSAGE" type="MESSAGE" minOccurs="0" maxOccurs="unbounded"/>
35
        </xs:sequence>
36
    </xs:complexType>
37
    <xs:complexType name="CONFIGURATION">
38
        <xs:all>
39
            <!-- Typology of the datasource: repository, aggregator, etc. -->
40
            <xs:element name="DATASOURCE_TYPE" type="xs:string" minOccurs="0"/>
41
            <!-- Original identifier of the datasource. Ex. <DATASOURCE_ORIGINAL_ID 
42
				provenance="OpenDoar">openDoar ID</DATASOURCE_ORIGINAL_ID> It corresponds 
43
				to the old schema EXTRA_FIELD with key='OpenAireDataSourceId' -->
44
            <xs:element name="DATASOURCE_ORIGINAL_ID" type="DATASOURCE_ORIGINAL_IDType" minOccurs="0"/>
45

    
46
            <!-- True if this datasource is aggregated by an aggregator -->
47
            <xs:element name="DATASOURCE_AGGREGATED" minOccurs="0" type="xs:boolean"/>
48

    
49
            <!-- If DATASOURCE_AGGREGATED is true, then DATASOURCE_AGGREGATOR_ID contains 
50
				the resource identifier of the profile of the aggregator. -->
51
            <xs:element name="DATASOURCE_AGGREGATOR_ID" type="xs:string" minOccurs="0"/>
52
            <!-- Names of environments with services that are allowed to manage this 
53
				datasource. For example, the environment for Slovenia repositories is SLOVENIA, 
54
				while the environment for repositories joining the OpenAire project is OpenAire. 
55
				This list of environment name supercedes the old schema EXTRA_FIELD element 
56
				with key='aggregatorName' -->
57
            <xs:element name="ENVIRONMENTS" type="ENVIRONMENTSType" minOccurs="0" maxOccurs="1"/>
58
            <xs:element name="TYPOLOGY" type="xs:string"/>
59
            <xs:element name="MAX_SIZE_OF_DATASTRUCTURE" type="xs:integer"/>
60
            <xs:element name="AVAILABLE_DISKSPACE" type="xs:string"/>
61
            <xs:element name="MAX_NUMBER_OF_DATASTRUCTURE" type="xs:integer"/>
62
            <xs:element name="OFFICIAL_NAME" type="xs:string"/>
63
            <xs:element name="ENGLISH_NAME" type="xs:string"/>
64
            <xs:element name="ICON_URI" type="xs:string"/>
65
            <xs:element name="COUNTRY" type="xs:string"/>
66
            <xs:element name="LOCATION" type="LOCATION"/>
67
            <xs:element name="REPOSITORY_WEBPAGE" type="xs:string"/>
68
            <xs:element name="REPOSITORY_INSTITUTION" type="xs:string"/>
69
            <xs:element name="ADMIN_INFO" type="xs:string"/>
70
            <xs:element name="INTERFACES" type="INTERFACES"/>
71
            <xs:element name="REGISTERED_BY" type="xs:string" minOccurs="0"/>
72
            <xs:element name="EXTRA_FIELDS" type="EXTRA_FIELDS" minOccurs="0"/>
73
        </xs:all>
74
    </xs:complexType>
75

    
76
    <xs:complexType name="DATASOURCE_ORIGINAL_IDType">
77
        <xs:annotation>
78
            <xs:documentation>Type for the datasource original identifier.
79
				The
80
				original id is not the D-Net profile identifier, but an id that
81
				identifies the datasource itself in the outside world.
82
				The provenance
83
				attribute references to the organisation,institution,
84
				etc, where the
85
				id had been taken from.
86
				For example, the profile for a repository
87
				that is in OpenDoar will have
88
				its opendoar id with provenance
89
				'OpenDoar'.
90
				This field should be used instead of the old schema
91
				EXTRA_FIELD with key='OpenAireDataSourceId'</xs:documentation>
92
        </xs:annotation>
93
        <xs:simpleContent>
94
            <xs:extension base="xs:string">
95
                <xs:attribute name="provenance"/>
96
            </xs:extension>
97
        </xs:simpleContent>
98
    </xs:complexType>
99
    <xs:complexType name="ACCESSPROTOCOLDATACOLLType">
100
        <xs:simpleContent>
101
            <xs:extension base="xs:string">
102
                <xs:anyAttribute processContents="lax"/>
103
            </xs:extension>
104
        </xs:simpleContent>
105
    </xs:complexType>
106

    
107
    <xs:complexType name="LAST_UPDATEType">
108
        <xs:attribute name="value" type="xs:dateTime" use="required"/>
109
    </xs:complexType>
110
    <xs:complexType name="LOCATION">
111
        <xs:all>
112
            <xs:element name="LONGITUDE" type="xs:double"/>
113
            <xs:element name="LATITUDE" type="xs:double"/>
114
            <xs:element name="TIMEZONE">
115
                <xs:simpleType>
116
                    <xs:restriction base="xs:double">
117
                        <xs:pattern value="-?[0-9]*(\.[05])?"/>
118
                        <xs:minInclusive value="-12.0"/>
119
                        <xs:maxInclusive value="12.0"/>
120
                    </xs:restriction>
121
                </xs:simpleType>
122
            </xs:element>
123
        </xs:all>
124
    </xs:complexType>
125
    <xs:complexType mixed="true" name="STATUS">
126
        <xs:all>
127
            <xs:element name="HANDLED_DATASTRUCTURE" type="xs:integer" minOccurs="0"/>
128
            <xs:element name="USED_DISKSPACE" type="xs:integer" minOccurs="0"/>
129
            <xs:element name="NUMBER_OF_OBJECTS" type="xs:integer"/>
130
            <xs:element name="LAST_UPDATE" type="LAST_UPDATEType" minOccurs="0"/>
131
        </xs:all>
132
    </xs:complexType>
133
    <xs:simpleType name="ACTION_STATUS">
134
        <xs:restriction base="xs:string">
135
            <xs:enumeration value="DONE"/>
136
            <xs:enumeration value="ONGOING"/>
137
            <xs:enumeration value="FAILED"/>
138
            <xs:enumeration value="WAITING"/>
139
            <xs:enumeration value="ASSIGNED"/>
140
        </xs:restriction>
141
    </xs:simpleType>
142
   
143
    <xs:complexType name="INTERFACE">
144
        <xs:sequence>
145
            <xs:element name="ACCESS_PROTOCOL">
146
                <xs:complexType>
147
                    <xs:simpleContent>
148
                        <xs:extension base="xs:string">
149
                            <xs:anyAttribute processContents="lax"/>
150
                        </xs:extension>
151
                    </xs:simpleContent>
152
                </xs:complexType>
153
            </xs:element>
154
            <xs:element name="BASE_URL" type="xs:string"/>
155
           
156
            
157
            <xs:element name="INTERFACE_EXTRA_FIELD" minOccurs="0" maxOccurs="unbounded">
158
                <xs:complexType>
159
                    <xs:simpleContent>
160
                        <xs:extension base="xs:string">
161
                            <xs:attribute name="name" use="required" type="xs:string"/>
162
                        </xs:extension>
163
                    </xs:simpleContent>
164
                </xs:complexType>
165
            </xs:element>
166
        </xs:sequence>
167

    
168
        <!-- The attributes id, typology, group have been imported from the Datacoll Type
169
			to keep track of the correspondence: interface <-> datacoll  -->
170

    
171
        <!-- id of the interface. -->
172
        <xs:attribute name="id" type="xs:string" use="required"/>
173

    
174
        <!-- label of the interface. -->
175
        <xs:attribute name="label" type="xs:string" use="required"/>
176

    
177
        <!-- brief information/description about the interface -->
178
        <xs:attribute name="typology" type="xs:string"/>
179

    
180
        <!-- 
181
        	Indicates if this interface is related with almost one workflow
182
        -->
183
        <xs:attribute name="compliance" type="xs:string" use="required"/>
184

    
185
        <!-- 
186
        	Indicates if this interface is related with almost one workflow
187
         -->
188

    
189
        <xs:attribute name="active" type="xs:boolean" use="required"/>
190

    
191
        <!-- 
192
        	Indicates if this interface is related with almost one workflow
193
         -->
194
        <xs:attribute name="removable" type="xs:boolean" use="required"/>
195
        
196
		<!-- 
197
        	Indicates the description of the data provided by the interface (typical values are metadata, file::WoS, file::PDF, file::EuropePMC)  
198
		-->
199
        <xs:attribute name="contentDescription" type="xs:string" use="required"/>
200
    </xs:complexType>
201
    <xs:complexType name="ENVIRONMENTSType">
202
        <xs:annotation>
203
            <xs:documentation>The list of environments that can manage this
204
				datasource.
205
				An environment identifies a set of services of one or
206
				more D-Net
207
				installations.
208
				The element ENVIRONMENT supercedes the
209
				EXTRA_FIELD element with
210
				key='aggregatorName'.</xs:documentation>
211
        </xs:annotation>
212
        <xs:sequence>
213
            <xs:element name="ENVIRONMENT" type="xs:string" maxOccurs="unbounded"/>
214
        </xs:sequence>
215
    </xs:complexType>
216
    <xs:complexType name="INTERFACES">
217
        <xs:sequence>
218
            <xs:element name="INTERFACE" type="INTERFACE" minOccurs="0" maxOccurs="unbounded"/>
219
        </xs:sequence>
220
    </xs:complexType>
221
    <xs:complexType name="EXTRA_FIELDS">
222
        <xs:sequence>
223
            <xs:element name="FIELD" type="FieldType" maxOccurs="unbounded"/>
224
        </xs:sequence>
225
    </xs:complexType>
226
    <xs:complexType name="FieldType">
227
        <xs:all>
228
            <xs:element name="key" type="xs:string"/>
229
            <xs:element name="value" type="xs:string"/>
230
        </xs:all>
231
    </xs:complexType>
232
    <xs:complexType name="RESOURCE_TYPEType">
233
        <xs:attribute name="value" use="required">
234
            <xs:simpleType>
235
                <xs:restriction base="xs:string">
236
                    <xs:enumeration value="RepositoryServiceResourceType"/>
237
                </xs:restriction>
238
            </xs:simpleType>
239
        </xs:attribute>
240
    </xs:complexType>
241
    <xs:complexType name="RESOURCE_URIType">
242
        <xs:attribute name="value" type="xs:string" use="required"/>
243
    </xs:complexType>
244
    <xs:complexType name="RESOURCE_KINDType">
245
        <xs:attribute name="value" use="required">
246
            <xs:simpleType>
247
                <xs:restriction base="xs:string">
248
                    <xs:enumeration value="RepositoryServiceResources"/>
249
                    <xs:enumeration value="PendingRepositoryResources"/>
250
                </xs:restriction>
251
            </xs:simpleType>
252
        </xs:attribute>
253
    </xs:complexType>
254
    <xs:complexType name="RESOURCE_IDENTIFIERType">
255
        <xs:attribute name="value" type="xs:string" use="required"/>
256
    </xs:complexType>
257
    <xs:complexType name="DATE_OF_CREATIONType">
258
        <xs:attribute name="value" type="xs:dateTime" use="required"/>
259
    </xs:complexType>
260
    <xs:complexType name="QOS">
261
        <xs:sequence>
262
            <xs:element name="AVAILABILITY" type="xs:string"/>
263
            <xs:element name="CAPACITY" type="xs:string"/>
264
            <xs:element name="RESPONSE_TIME" type="xs:string" minOccurs="0"/>
265
            <xs:element name="THROUGHPUT" type="xs:double"/>
266
        </xs:sequence>
267
    </xs:complexType>
268
    <xs:complexType name="PARAMETERS">
269
        <xs:simpleContent>
270
            <xs:extension base="xs:string">
271
                <xs:attribute name="name" type="xs:string" use="required"/>
272
            </xs:extension>
273
        </xs:simpleContent>
274
    </xs:complexType>
275
    <xs:complexType name="MESSAGE">
276
        <xs:sequence>
277
            <xs:element name="ACTION" type="ACTION"/>
278
            <xs:element name="PARAMETERS" type="PARAMETERS" maxOccurs="unbounded"/>
279
            <xs:element name="ACTION_STATUS" type="ACTION_STATUS"/>
280
        </xs:sequence>
281
        <xs:attribute name="id" type="xs:string" use="required"/>
282
    </xs:complexType>
283
    <xs:simpleType name="ACTION">
284
        <xs:restriction base="xs:string">
285
            <xs:enumeration value="CREATE"/>
286
            <xs:enumeration value="DELETE"/>
287
            <xs:enumeration value="UPDATE"/>
288
            <xs:enumeration value="MANAGE"/>
289
            <xs:enumeration value="RELEASE"/>
290
            <xs:enumeration value="CANCEL"/>
291
        </xs:restriction>
292
    </xs:simpleType>
293
</xs:schema>
(26-26/37)