-
Notifications
You must be signed in to change notification settings - Fork 2
/
StandardsRegExt-v1.1.xsd
401 lines (378 loc) · 16.8 KB
/
StandardsRegExt-v1.1.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
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.ivoa.net/xml/StandardsRegExt/v1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vr="http://www.ivoa.net/xml/VOResource/v1.0"
xmlns:vstd="http://www.ivoa.net/xml/StandardsRegExt/v1.0"
xmlns:vm="http://www.ivoa.net/xml/VOMetadata/v0.1"
elementFormDefault="unqualified" attributeFormDefault="unqualified"
version="1.1-wd1" >
<xs:annotation>
<xs:appinfo>
<vm:schemaName>StandardsRegExt</vm:schemaName>
<vm:schemaPrefix>xs</vm:schemaPrefix>
<vm:targetPrefix>vstd</vm:targetPrefix>
</xs:appinfo>
<xs:documentation>
This is a core schema for describing IVOA Standards themselves.
See complete specification at
http://www.ivoa.net/Documents/latest/StandardsRegExt.html.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://www.ivoa.net/xml/VOResource/v1.0"
schemaLocation="http://www.ivoa.net/xml/VOResource/v1.0"/>
<xs:complexType name="Standard">
<xs:annotation>
<xs:documentation>
a description of a standard specification.
</xs:documentation>
<xs:documentation>
This typically refers to an IVOA standard but is not
limited to such.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="vr:Resource">
<xs:sequence>
<xs:element name="endorsedVersion" type="vstd:EndorsedVersion"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
the version of the standard that is recommended for use.
</xs:documentation>
<xs:documentation>
More than one version can be listed, indicating
that any of these versions are recognized as
acceptable for use.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="schema" type="vstd:Schema"
minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
a description and pointer to a schema document
defined by this standard.
</xs:documentation>
<xs:documentation>
This is most typically an XML Schema, but it need
not be strictly.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="deprecated" type="xs:token" minOccurs="0">
<xs:annotation>
<xs:documentation>
when present, this element indicates that all
versions of the standard are considered
deprecated by the publisher. The value is a
human-readable explanation for the designation.
</xs:documentation>
<xs:documentation>
The explanation should indicate if another
standard should be preferred.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="key" type="vstd:StandardKey"
minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
a defined key associated with this standard.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="EndorsedVersion">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="status" default="n/a">
<xs:annotation>
<xs:documentation>
the IVOA status level of this version of the standard.
</xs:documentation>
<xs:documentation>
For values of “rec”, “pr”, “wd”, “note”, “pen”, and “en” the
record's referenceURL element should point to the
official specification document in the IVOA Document
Repository; if the document does not appear there,
these values should not be used.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="rec">
<xs:annotation>
<xs:documentation>
an IVOA Recommendation
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="pr">
<xs:annotation>
<xs:documentation>
an IVOA Proposed Recommendation
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="wd">
<xs:annotation>
<xs:documentation>
an IVOA Working Draft
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="iwd">
<xs:annotation>
<xs:documentation>
an internal Working Draft of an IVOA Working Group
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="note">
<xs:annotation>
<xs:documentation>
a published IVOA Note
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="pen">
<xs:annotation>
<xs:documentation>
a Proposed Endorsed Note
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="en">
<xs:annotation>
<xs:documentation>
an Endorsed Note
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="n/a">
<xs:annotation>
<xs:documentation>
not an IVOA standard or protostandard at
this time.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="use">
<xs:annotation>
<xs:documentation>
A designation of preference for the version compared
to other versions in use.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="preferred">
<xs:annotation>
<xs:documentation>
the most preferred version.
</xs:documentation>
<xs:documentation>
Only one version should have this designation.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="deprecated">
<xs:annotation>
<xs:documentation>
a version whose use is now discouraged
because a newer version is preferred.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="Schema">
<xs:annotation>
<xs:documentation>
a description of a schema definition
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="location" type="xs:anyURI"
minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
A URL pointing to a document that formally defines
the schema.
</xs:documentation>
<xs:documentation>
The document should be in a machine-parsable format
when applicable. For example, when refering to an
XML schema, the document should be an XML Schema or
similar document that can be used to validate an
instance document.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" type="xs:token"
minOccurs="0" maxOccurs="1" >
<xs:annotation>
<xs:documentation>
A human-readable description of what the schema
defines or is used for.
</xs:documentation>
<xs:documentation>
A brief description--e.g. one statement--is
recommended for display purposes.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="example" type="xs:anyURI"
minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
A URL pointing to a sample document that illustrates
the use of the schema.
</xs:documentation>
<xs:documentation>
When applicable (e.g. XML), the document should be
in the format defined by the schema document.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="namespace" type="xs:token" use="required">
<xs:annotation>
<xs:documentation>
an identifier for the schema being described. Each instance
of this attribute must be unique within the resourse description.
</xs:documentation>
<xs:documentation>
For XML schemas, this should be the schema's namespace URI.
Otherwise, it should be a unique label to distinguish it from
other schemas described in the same resource description.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="ServiceStandard">
<xs:annotation>
<xs:documentation>
a description of a standard service protocol.
</xs:documentation>
<xs:documentation>
This typically refers to an IVOA standard but is not
limited to such.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="vstd:Standard">
<xs:sequence>
<xs:element name="interface" type="vr:Interface"
minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
an abstract description of one of the interfaces defined
by this service standard.
</xs:documentation>
<xs:documentation>
This element can provide details about the interface
that apply to all implementations. Each interface
element should specify a role with a value starting
with "std:" or, if there is only one standard interface,
is equal to "std".
</xs:documentation>
<xs:documentation>
Applications that, for example, wish to build a GUI
to the service on-the-fly would first access this generic
description. Site-specific variations, such
as supported optional arguments or site specific
arguments, would be given in the actual implemented
service description and overrides any common information
found in this generic description. This generic interface
description can be matched with the site-specific one
using the role attribute.
</xs:documentation>
<xs:documentation>
Even though the Interface type requires an
accessURL child element, this element is
intended to describe a service in the
abstract--i.e. without reference to a particular
installation of the service. Consequently,
the accessURL may contain a bogus URL;
applications should not expect it to be resolvable.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="StandardKey">
<xs:annotation>
<xs:documentation>
The name and definition of a key--a named concept,
feature, or property.
</xs:documentation>
<xs:documentation>
This key can be identified via an IVOA identifier
of the form ivo://authority/resource#name where name is
the value of the child name element.
</xs:documentation>
<xs:documentation>
This type can be extended if the key has
other metadata associated with it.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="name" type="vstd:fragment">
<xs:annotation>
<xs:documentation>
The property identifier which would appear as the
fragment (string after the pound sign, #) in an IVOA
identifier.
To facilitate comparisons of such keys given that
registry identifiers are case insensitive, all newly
created standard keys must not contain uppercase letters.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" type="xs:token">
<xs:annotation>
<xs:documentation>
A human-readable definition of this property.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="StandardKeyURI">
<xs:annotation>
<xs:documentation>
reference that forces an IVOA ID with a # fragment part
appended to match the standard pattern for registering
enumeration values with a vstd:StandardKeyList
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:anyURI">
<xs:pattern value="ivo://[\w\d][\w\d\-_\.!~\*'\(\)\+=]{2,}(/[\w\d\-_\.!~\*'\(\)\+=]+(/[\w\d\-_\.!~\*'\(\)\+=]+)*)?(#([A-Za-z0-9;/\?:@&=\+$,\-_\.!~\*'\(\)]|%[A-Fa-f0-9]{2})+)?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="fragment">
<xs:annotation>
<xs:documentation>
the allowed characters for a fragment identifier taken
from rfc2396
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern
value="([A-Za-z0-9;/\?:@&=\+$,\-_\.!~\*'\(\)]|%[A-Fa-f0-9]{2})+"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>