Project

General

Profile

« Previous | Next » 

Revision 42508

first validations using oafProtoSchema.xsd

View differences:

modules/dnet-openaire-data-protos/trunk/src/main/resources/eu/dnetlib/data/proto/xsd/oafProtoSchema.xsd
21 21
		<xs:complexType>
22 22
			<xs:sequence>
23 23
				<xs:element name="type" type="entityType" minOccurs="1"/>
24
				<xs:element name="id" type="xs:string" minOccurs="1"/>
25 24
				<xs:choice>
26 25
					<xs:element ref="person"/>
27 26
					<xs:element ref="result"/>
......
29 28
				</xs:choice>
30 29
				<xs:element name="originalId" type="xs:string" maxOccurs="unbounded" />
31 30
				<xs:element name="collectedfrom" type="keyValueType" maxOccurs="unbounded" />
32
				<xs:element name="pid" type="structuredPropertyType" maxOccurs="unbounded" />
31
				<xs:element name="pid" type="structuredPropertyType" minOccurs="0" maxOccurs="unbounded" />
33 32
				<xs:element name="dateofcollection" type="xs:string"/> <!-- replace with xs:date or xs:datetime ?? -->
34
				<xs:element name="dateoftransformation" type="xs:string"/> <!-- replace with xs:date or xs:datetime ?? -->
35

  
33
				<xs:element name="id" type="xs:string" minOccurs="1"/>
34
				<xs:element name="dateoftransformation" type="xs:string" minOccurs="0"/> <!-- replace with xs:date or xs:datetime ?? -->
35
				<xs:element name="oaiprovenance" type="OAIProvenanceType" minOccurs="0"/>
36 36
			</xs:sequence>
37 37
		</xs:complexType>
38 38
	</xs:element>
......
50 50
	<!-- RESULT -->
51 51
	<xs:element name="result">
52 52
		<xs:complexType>
53
			<xs:sequence>
53
			<xs:all>
54 54
				<xs:element name="metadata" type="resultMetadataType"/>
55 55
				<xs:element name="instance" type="instanceType"/>
56 56
				<xs:element name="externalReference" type="externalReferenceType"/>
57 57
				<!-- <xs:element ref="author"/> -->
58
			</xs:sequence>
58
			</xs:all>
59 59
		</xs:complexType>
60 60
	</xs:element>
61 61
	<xs:complexType name="instanceType">
......
63 63
			<xs:element name="licence" type="qualifierType"/>
64 64
			<xs:element name="instancetype" type="qualifierType"/>
65 65
			<xs:element name="hostedby" type="keyValueType"/>
66
			<xs:element name="url" type="xs:anyURI"/>
66
			<xs:element name="url" type="xs:anyURI" maxOccurs="unbounded" />
67 67
		</xs:sequence>
68 68
	</xs:complexType>
69 69
	<xs:complexType name="externalReferenceType">
70
		<xs:sequence>
71
			<xs:element name="sitename" type="xs:string"/>
72
			<xs:element name="label" type="xs:string"/>
73
			<xs:element name="url" type="xs:string"/>
74
			<xs:element name="description" type="xs:string"/>
75
			<xs:element name="qualifier" type="qualifierType"/>
76
			<xs:element name="refidentifier" type="xs:string"/>
77
			<xs:element name="query" type="xs:string"/>
78
			<xs:element name="dataInfo" type="dataInfoType"/>
79
		</xs:sequence>
70
		<xs:all>
71
			<xs:element name="sitename" type="xs:string" minOccurs="0" />
72
			<xs:element name="label" type="xs:string" minOccurs="0" />
73
			<xs:element name="url" type="xs:string" minOccurs="0" />
74
			<xs:element name="description" type="xs:string" minOccurs="0" />
75
			<xs:element name="qualifier" type="qualifierType" minOccurs="0" />
76
			<xs:element name="refidentifier" type="xs:string" minOccurs="0" />
77
			<xs:element name="query" type="xs:string" minOccurs="0" />
78
			<xs:element name="dataInfo" type="dataInfoType" minOccurs="0" />
79
		</xs:all>
80 80
	</xs:complexType>
81 81
	<xs:complexType name="resultMetadataType">
82 82
		<xs:sequence>
83
			<xs:element name="subject" type="structuredPropertyType" minOccurs="0" maxOccurs="unbounded"/>
84
			<xs:element name="title" type="structuredPropertyType" maxOccurs="unbounded"/>
85
			<xs:element name="dateofacceptance" type="stringFieldType" minOccurs="0" />
86
			<xs:element name="publisher" type="stringFieldType" minOccurs="0" />
87
			<xs:element name="embargoenddate" type="stringFieldType" minOccurs="0" />
83 88
			<xs:element name="resulttype" type="qualifierType"/> <!-- resulttype allows subclassing results into publications or datasets -->
84
			<xs:element name="language" type="qualifierType"/>
85
			<xs:element name="country" type="qualifierType" maxOccurs="unbounded"/>
86
			<xs:element name="subject" type="structuredPropertyType" maxOccurs="unbounded"/>
87
			<xs:element name="title" type="structuredPropertyType" maxOccurs="unbounded"/>
88
			<xs:element name="relevantdate" type="structuredPropertyType" maxOccurs="unbounded"/>
89
			<xs:element name="description" type="stringFieldType" maxOccurs="unbounded"/>
90
			<xs:element name="dateofacceptance" type="stringFieldType" />
91
			<xs:element name="publisher" type="stringFieldType" />
92
			<xs:element name="embargoenddate" type="stringFieldType" />
93
			<xs:element name="source" type="stringFieldType" maxOccurs="unbounded"/>
94
			<xs:element name="fulltext" type="stringFieldType" maxOccurs="unbounded"/>
95
			<xs:element name="format" type="stringFieldType" maxOccurs="unbounded"/>
96
			<xs:element name="contributor" type="stringFieldType" maxOccurs="unbounded"/>
97
			<xs:element name="context" type="contextType" maxOccurs="unbounded"/>
98
			<xs:element name="journal" type="journalType" />
99
			<xs:element name="storagedate" type="stringFieldType" />
100
			<xs:element name="resourcetype" type="qualifierType" />
101
			<xs:element name="device" type="stringFieldType" />
102
			<xs:element name="size" type="stringFieldType" />
103
			<xs:element name="version" type="stringFieldType" />
104
			<xs:element name="lastmetadataupdate" type="stringFieldType" />
105
			<xs:element name="metadataversionnumber" type="stringFieldType" />
89
			<xs:element name="language" type="qualifierType" minOccurs="0"/>
90
			<xs:element name="journal" type="journalType" minOccurs="0" />
91
			<xs:element name="description" type="stringFieldType" minOccurs="0" maxOccurs="unbounded"/>
92
			<xs:element name="source" type="stringFieldType" minOccurs="0" maxOccurs="unbounded"/>
93
			<xs:element name="context" type="contextType" minOccurs="0" maxOccurs="unbounded"/>
94
			<xs:element name="contributor" type="stringFieldType" minOccurs="0" maxOccurs="unbounded"/>
95

  
96

  
97
			<xs:element name="country" type="qualifierType" minOccurs="0" maxOccurs="unbounded"/>
98
			<xs:element name="relevantdate" type="structuredPropertyType" minOccurs="0" maxOccurs="unbounded"/>
99
			<xs:element name="fulltext" type="stringFieldType" minOccurs="0" maxOccurs="unbounded"/>
100
			<xs:element name="format" type="stringFieldType" minOccurs="0" maxOccurs="unbounded"/>
101
			<xs:element name="storagedate" type="stringFieldType" minOccurs="0" />
102
			<xs:element name="resourcetype" type="qualifierType" minOccurs="0"  />
103
			<xs:element name="device" type="stringFieldType" minOccurs="0" />
104
			<xs:element name="size" type="stringFieldType" minOccurs="0" />
105
			<xs:element name="version" type="stringFieldType" minOccurs="0" />
106
			<xs:element name="lastmetadataupdate" type="stringFieldType" minOccurs="0" />
107
			<xs:element name="metadataversionnumber" type="stringFieldType" minOccurs="0" />
106 108
		</xs:sequence>
107 109
	</xs:complexType>
108 110
	<xs:complexType name="contextType">
109
		<xs:sequence>
111
		<xs:all>
110 112
			<xs:element name="id" type="xs:string" minOccurs="1"/>
111
			<xs:element name="datInfo" type="dataInfoType"/>
112
		</xs:sequence>
113
			<xs:element name="dataInfo" type="dataInfoType" minOccurs="0" />
114
		</xs:all>
113 115
	</xs:complexType>
114 116

  
115 117
	<xs:complexType name="journalType">
116
		<xs:sequence>
118
		<xs:all>
117 119
			<xs:element name="name" type="xs:string"/>
118
			<xs:element name="issnPrinted" type="xs:string"/>
119
			<xs:element name="issnOnline" type="xs:string"/>
120
			<xs:element name="issnLinking" type="xs:string"/>
121
			<xs:element name="datInfo" type="dataInfoType"/>
122
		</xs:sequence>
120
			<xs:element name="issnPrinted" type="xs:string" minOccurs="0" />
121
			<xs:element name="issnOnline" type="xs:string" minOccurs="0" />
122
			<xs:element name="issnLinking" type="xs:string" minOccurs="0" />
123
			<xs:element name="datInfo" type="dataInfoType" minOccurs="0" />
124
		</xs:all>
123 125
	</xs:complexType>
124 126

  
125 127

  
......
136 138

  
137 139
	<xs:complexType name="personMetadataType">
138 140
		<xs:sequence>
139
			<xs:element name="firstname" type="stringFieldType" />
140
			<xs:element name="secondnames" type="stringFieldType" maxOccurs="unbounded" />
141
			<xs:element name="firstname" type="stringFieldType" minOccurs="0" />
142
			<xs:element name="secondnames" type="stringFieldType" minOccurs="0" maxOccurs="unbounded" />
141 143
			<xs:element name="fullname" type="stringFieldType" />
142
			<xs:element name="fax" type="stringFieldType" />
143
			<xs:element name="email" type="stringFieldType" />
144
			<xs:element name="phone" type="stringFieldType" />
145
			<xs:element name="nationality" type="qualifierType" />
144
			<xs:element name="fax" type="stringFieldType" minOccurs="0"/>
145
			<xs:element name="email" type="stringFieldType" minOccurs="0" />
146
			<xs:element name="phone" type="stringFieldType" minOccurs="0" />
147
			<xs:element name="nationality" type="qualifierType" minOccurs="0" />
146 148
		</xs:sequence>
147 149
	</xs:complexType>
148 150

  
......
159 161
		<xs:complexType>
160 162
			<xs:sequence>
161 163
				<xs:element name="relType" type="relationshipType" minOccurs="1"/>
162
				<xs:element name="subRelType" type="subRelationshipType" minOccurs="1"/>
163
				<xs:element name="relClass" type="xs:string"/> <!-- we need to restrict the possible values here -->
164 164

  
165 165
				<xs:element name="source" type="xs:string"/>
166 166
				<xs:element name="target" type="xs:string"/>
167
				<xs:element name="child" type="xs:boolean"/>
167 168

  
168 169
				<xs:choice>
169 170
					<xs:element name="personResult" type="personResultType"/>
......
171 172
					<!-- ... -->
172 173
				</xs:choice>
173 174

  
175
				<xs:element name="subRelType" type="subRelationshipType" minOccurs="1"/>
176
				<xs:element name="relClass" type="xs:string"/> <!-- we need to restrict the possible values here -->
177

  
174 178
			</xs:sequence>
175 179
		</xs:complexType>
176 180
	</xs:element>
......
211 215
		<xs:all>
212 216
			<xs:element name="authorship">
213 217
				<xs:complexType>
214
					<xs:sequence>
218
					<xs:all>
215 219
						<xs:element name="relMetadata" type="relMetadataType" minOccurs="1" />
216 220
						<xs:element name="ranking" type="xs:string"/> <!-- use numeric value here -->
217
						<xs:element name="affiliation" type="xs:string"/>
218
					</xs:sequence>
221
						<xs:element name="affiliation" type="xs:string" minOccurs="0"/>
222
					</xs:all>
219 223
				</xs:complexType>
220 224
			</xs:element>
221 225
		</xs:all>
......
235 239

  
236 240
	<!-- BASIC TYPES -->
237 241
	<xs:complexType name="dataInfoType">
238
		<xs:sequence>
242
		<xs:all>
239 243
			<xs:element name="inferred" type="xs:boolean"/>
240 244
			<xs:element name="deletedbyinference" type="xs:boolean"/>
241 245
			<xs:element name="trust" type="xs:string"/>
242 246
			<xs:element name="provenanceaction" type="qualifierType" minOccurs="1"/>
243
		</xs:sequence>
247
		</xs:all>
244 248
	</xs:complexType>
245 249

  
246 250
	<xs:complexType name="qualifierType">
247
		<xs:sequence>
251
		<xs:all>
248 252
			<xs:element name="classid" type="xs:string"/>
249 253
			<xs:element name="classname" type="xs:string"/>
250 254
			<xs:element name="schemeid" type="xs:string"/>
251 255
			<xs:element name="schemename" type="xs:string"/>
252
			<xs:element name="dataInfo" type="dataInfoType"/>
253
		</xs:sequence>
256
			<xs:element name="dataInfo" type="dataInfoType" minOccurs="0"/>
257
		</xs:all>
254 258
	</xs:complexType>
255 259

  
256 260
	<xs:complexType name="keyValueType">
257
		<xs:sequence>
261
		<xs:all>
258 262
			<xs:element name="key" type="xs:string" minOccurs="1"/>
259 263
			<xs:element name="value" type="xs:string"/>
260
			<xs:element name="dataInfo" type="dataInfoType"/>
261
		</xs:sequence>
264
			<xs:element name="dataInfo" type="dataInfoType" minOccurs="0"/>
265
		</xs:all>
262 266
	</xs:complexType>
263 267

  
264 268
	<xs:complexType name="structuredPropertyType">
265
		<xs:sequence>
269
		<xs:all>
266 270
			<xs:element name="value" type="xs:string" minOccurs="1"/>
267 271
			<xs:element name="qualifier" type="qualifierType"/>
268
			<xs:element name="dataInfo" type="dataInfoType"/>
269
		</xs:sequence>
272
			<xs:element name="dataInfo" type="dataInfoType" minOccurs="0"/>
273
		</xs:all>
270 274
	</xs:complexType>
271 275

  
272 276
	<xs:complexType name="stringFieldType">
273
		<xs:sequence>
277
		<xs:all>
274 278
			<xs:element name="value" type="xs:string" minOccurs="1"/>
275
			<xs:element name="dataInfo" type="dataInfoType"/>
276
		</xs:sequence>
279
			<xs:element name="dataInfo" type="dataInfoType" minOccurs="0"/>
280
		</xs:all>
277 281
	</xs:complexType>
278 282

  
279 283
	<xs:complexType name="relMetadataType">
284
		<xs:all>
285
			<xs:element name="semantics" type="qualifierType"/>
286
			<xs:element name="startdate" type="xs:string" minOccurs="0"/>
287
			<xs:element name="enddate" type="xs:string" minOccurs="0"/>
288
		</xs:all>
289
	</xs:complexType>
290

  
291
	<xs:complexType name="OAIProvenanceType">
280 292
		<xs:sequence>
281
			<xs:element name="semantics" type="qualifierType"/>
282
			<xs:element name="startdate" type="xs:string"/>
283
			<xs:element name="enddate" type="xs:string"/>
293
			<xs:element name="originDescription" type="originDescriptionType" minOccurs="0"/>
284 294
		</xs:sequence>
285 295
	</xs:complexType>
296
	<xs:complexType name="originDescriptionType">
297
		<xs:sequence>
298
			<xs:element name="harvestDate" type="xs:string" minOccurs="0"/>
299
			<xs:element name="altered" type="xs:boolean" minOccurs="0"/>
300
			<xs:element name="baseURL" type="xs:string" minOccurs="0"/>
301
			<xs:element name="identifier" type="xs:string" minOccurs="0"/>
302
			<xs:element name="datestamp" type="xs:string" minOccurs="0"/>
303
			<xs:element name="metadataNamespace" type="xs:string" minOccurs="0"/>
304
			<xs:element name="originDescription" type="originDescriptionType" minOccurs="0"/>
286 305

  
306
		</xs:sequence>
307
	</xs:complexType>
308

  
287 309
</xs:schema>

Also available in: Unified diff