Wiki source code of Part V. Query

Version 3.2 by Helena on 2025/07/02 16:55

Hide last authors
Helena 3.2 1 {{box title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 = 1 Introduction =
6
7 The registry schemas have been updated to reflect the various changes in the standard and to introduce new constructs for managing [[subscriptions>>doc:sdmx:Glossary.Subscription.WebHome]]. In addtion, the constructs that had existed for querying [[structural metadata>>doc:sdmx:Glossary.Structural metadata.WebHome]] have been removed as this is now handled by the query messages.
8
9 As was done with the query, the registry message set now contains distinct messages for each operation. The messages will eventually allow the registry to function in more standard web service mannter.
10
11 = 2 Schema Documentation =
12
13 == 2.1 Registry Namespace ==
14
15 http://www.sdmx.org/resources/sdmxml/schemas/v3_1/registry
16
17 === 2.1.1 Summary ===
18
19 Referenced Namespaces:
20
21 |**Namespace**|**Prefix**|
22 |http://www.sdmx.org/resources/sdmxml/schemas/v3_1/common|common|
23 |http://www.sdmx.org/resources/sdmxml/schemas/v3_1/structure|structure|
24 |http://www.w3.org/2001/XMLSchema|xs|
25
26 Contents:
27 39 Complex Types
28 5 Simple Types
29
30 === 2.1.2 Complex Types ===
31
32 **RegistrationType:** Registration provides the information needed for data and reference metadata set registration. A data source must be supplied here if not already provided in the provision agreement. The data set or metadata set must be associated with a provision agreement, a metadata flow, or a dataflow definition. If possible, the provision agreement should be specified. Only in cases where this is not possible should the dataflow or metadata flow be used.
33
34 Attributes:
35 id?, validFrom?, validTo?, lastUpdated?, indexTimeSeries?, indexDataSet?, indexAttributes?, indexReportingPeriod?
36
37 Content:
38 ProvisionAgreement, Datasource
39
40 Attribute Documentation:
41
42 |**Name**|**Type**|**Documentation**|
43 |id|IDType|The id attribute holds a registry assigned identification for the registration. This must be provided in a response message (unless an error occurred while submitting a new registration), and should be included when updating or deleting a registration.|
44 |validFrom|xs:dateTime|The validFrom attribute provides an inclusive start date for providing supplemental validity information about the registration, so that data visibility from the registry can be controlled by the registrant.|
45 |validTo|xs:dateTime|The validFrom attribute provides an inclusive end date for providing supplemental validity information about the registration, so that data visibility from the registry can be controlled by the registrant.|
46 |lastUpdated|xs:dateTime|The lastUpdated attribute provides a timestamp for the last time the data source was updated.|
47 |indexTimeSeries (default: false)|xs:boolean|The indexTimeSeries, if true, indicates that the registry must index all time series for the registered data. The default value is false, and the attribute will always be assumed false when the provision agreement references a metadata flow.|
48 |indexDataSet (default: false)|xs:boolean|The indexDataSet, if true, indicates that the registry must index the range of actual (present) values for each dimension of the data set or identifier component of the metadata set (as indicated in the set's structure definition). The default value is false.|
49 |indexAttributes (default: false)|xs:boolean|The indexAttributes, if true, indicates that the registry must index the range of actual (present) values for each attribute of the data set or the presence of the metadata attributes of the metadata set (as indicated in the set's structure definition). The default value is false.|
50 |indexReportingPeriod (default: false)|xs:boolean|The indexReportingPeriod, if true, indicates that the registry must index the time period ranges for which data is present for the data source. The default value is false, and the attribute will always be assumed false when the provision agreement references a metadata flow.|
51
52 Element Documentation:
53
54 |**Name**|**Type**|**Documentation**|
55 |ProvisionAgreement|ProvisionAgreementRe ferenceType|ProvisionAgreement provides a reference to the provision agreement that the data is being registered against.|
56 |Datasource|DataSourceType|Datasource identifies the data source(s) where the registered data can be retrieved.|
57
58 **DataSourceType:** DataSourceType specifies the properties of a data or metadata source. Either a simple data source, a queryable data source, or both must be specified.
59
60 Content:
61 (SimpleDataSource|QueryableDataSource)[1..2]
62
63 Element Documentation:
64
65 |**Name**|**Type**|**Documentation**|
66 |SimpleDataSource|xs:anyURI|SimpleDatasource describes a data source that is an SDMX-ML data or metadata message. It requires only the URL of the data.|
67 |QueryableDataSource|QueryableDataSourceT ype|QueryableDatasource describes a data source that can be queried using the SDMX REST interfaces.|
68
69 **SimpleDataSourceType:** SimpleDataSourceType describes a simple data source. The URL of the data is contained in the content.
70
71 Derivation:
72
73 xs:anySimpleType (restriction)
74 xs:anyURI (extension)
75 SimpleDataSourceType
76
77 Attributes:
78 TYPE?
79
80 Content:
81 Attribute Documentation:
82
83 |**Name**|**Type**|**Documentation**|
84 |TYPE (fixed: SIMPLE)|xs:string|TYPE is a fixed attribute that is used to ensure only one simple data source may be provided, when it is referenced in a uniqueness constraint.|
85
86 **QueryableDataSourceType:** QueryableDataSourceType describes a queryable data source, and add a fixed attribute for ensuring only one queryable source can be provided.
87
88 Derivation:
89
90 QueryableDataSourceType (extension)
91 QueryableDataSourceType
92
93 Attributes:
94 isRESTDatasource, isWebServiceDatasource, TYPE?
95
96 Content:
97 DataURL, WSDLURL?, WADLURL?
98
99 Attribute Documentation:
100
101 |**Name**|**Type**|**Documentation**|
102 |isRESTDatasource|xs:boolean|The isRESTDatasource attribute indicates, if true, that the queryable data source is accessible via the REST protocol.|
103 |isWebServiceDatasource|xs:boolean|The isWebServiceDatasource attribute indicates, if true, that the queryable data source is accessible via Web Services protocols.|
104 |TYPE (fixed: QUERY)|xs:string|TYPE is a fixed attribute that is used to ensure only one queryable data source may be provided, when it is referenced in a uniqueness constraint.|
105
106 Element Documentation:
107
108 |**Name**|**Type**|**Documentation**|
109 |DataURL|xs:anyURI|DataURL contains the URL of the data source.|
110 |WSDLURL|xs:anyURI|WSDLURL provides the location of a WSDL instance on the internet which describes the queryable data source.|
111 |WADLURL|xs:anyURI|WADLURL provides the location of a WADL instance on the internet which describes the REST protocol of the queryable data source.|
112
113 **IdentifiableQueryType:** IdentifiableQueryType describes the structure of a query for an identifiable object.
114
115 Attributes:
116 id?
117
118 Content:
119 {Empty}
120
121 Attribute Documentation:
122
123 |**Name**|**Type**|**Documentation**|
124 |id (default: %)|IDQueryType|The id attribute is used to query for an object based on its identifier. This is either an explicit value, or completely wild cared with the "%" value.|
125
126 **VersionableQueryType:** VersionableQueryType describes the structure of a query for a versionable object.
127
128 Derivation:
129
130 IdentifiableQueryType (extension)
131 VersionableQueryType
132
133 Attributes:
134 id?, version?
135
136 Content:
137 {Empty}
138
139 Attribute Documentation:
140
141 |**Name**|**Type**|**Documentation**|
142 |id (default: %)|IDQueryType|The id attribute is used to query for an object based on its identifier. This is either an explicit value, or completely wild cared with the "%" value.|
143 |version (default: \*)|VersionQueryType|The version attribute is used to query for an object based on its version. This can be and explicit value, wild-carded ("%"), or late-bound ("\*"). A wild carded version will match any version of the object where as a late-bound version will only match the latest version.|
144
145 **MaintainableQueryType:** MaintainableQueryType describes the structure of a query for a maintainable object.
146
147 Derivation:
148
149 IdentifiableQueryType (extension)
150 VersionableQueryType (extension)
151 MaintainableQueryType
152
153 Attributes:
154 id?, version?, agencyID?
155
156 Content:
157 {Empty}
158
159 Attribute Documentation:
160
161 |**Name**|**Type**|**Documentation**|
162 |id (default: %)|IDQueryType|The id attribute is used to query for an object based on its identifier. This is either an explicit value, or completely wild cared with the "%" value.|
163 |version (default: \*)|VersionQueryType|The version attribute is used to query for an object based on its version. This can be and explicit value, wild-carded ("%"), or late-bound ("\*"). A wild carded version will match any version of the object where as a late-bound version will only match the latest version.|
164 |agencyID (default: %)|NestedIDQueryType|The agencyID attribute is used to query for an object based on its maintenance agency's identifier. This is either an explicit value, or completely wild cared with the "%" value.|
165
166 **StatusMessageType:** StatusMessageType carries the text of error messages and/or warnings in response to queries or requests.
167
168 Attributes:
169 status
170
171 Content:
172 MessageText
173
174 Attribute Documentation:
175
176 |**Name**|**Type**|**Documentation**|
177 |status|StatusType|The status attribute carries the status of the query or request.|
178
179 Element Documentation:
180
181 |**Name**|**Type**|**Documentation**|
182 |MessageText|StatusMessageType|MessageText contains the text of the error and/or warning message. It can occur multiple times to communicate message for multiple warnings or errors.|
183
184 **SubmitRegistrationsRequestType:** SubmitRegistrationsRequestType defines the payload of a request message used to submit addtions, updates, or deletions of data/metadata set registrations.
185
186 Content:
187 RegistrationRequest+
188
189 Element Documentation:
190
191 |**Name**|**Type**|**Documentation**|
192 |RegistrationRequest|RegistrationRequestT ype|RegistrationRequest provides the details of a requested registration and the action to take on it. A reference to a provision agreement that exists in the registry must be provide along with a simple and/or queryable data source. The id should only be provided when updating or deleting a registration.|
193
194 **RegistrationRequestType:** RegistrationRequestType describes the structure of a single registration request. It contains the details of a registation and an action field to indicate the action to be taken on the contained registration.
195
196 Attributes:
197 action
198
199 Content:
200 Registration
201
202 Attribute Documentation:
203
204 |**Name**|**Type**|**Documentation**|
205 |action|ActionType|The action attribute indicates whether this is an addition, a modification, or a deletion of a registration.|
206
207 Element Documentation:
208
209 |**Name**|**Type**|**Documentation**|
210
211 |Registration|RegistrationType|Registration contains the details of the data/metadata set registration to be added, updated, or deleted.|
212
213 **SubmitRegistrationsResponseType:** SubmitRegistrationsResponseType describes the structure of a registration response. For each submitted registration in the request, a registration status is provided. The status elements should be provided in the same order as the submitted registrations, although each status will echo the request to ensure accurate processing of the responses.
214
215 Content:
216 RegistrationStatus+
217
218 Element Documentation:
219
220 |**Name**|**Type**|**Documentation**|
221 |RegistrationStatus|RegistrationStatusTy pe|RegistrationStatus provided the status details for the submitted registration. It echoes the original submission and provides status information about the request.|
222
223 **RegistrationStatusType:** RegistrationStatusType describes the structure of a registration status.
224
225 Content:
226 Registration, StatusMessage
227
228 Element Documentation:
229
230 |**Name**|**Type**|**Documentation**|
231 |Registration|RegistrationType|Registration, at the very least echoes the submitted registration. It the request was to create a new registration and it was successful, an id must be supplied.|
232 |StatusMessage|StatusMessageType|StatusMessage provides that status for the registration request, and if necessary, any error or warning information.|
233
234 **QueryRegistrationRequestType:** QueryRegistrationRequestType describes the structure of a registration query request. The type of query (data, reference metadata, or both) must be specified. It is possible to query for registrations for a particular provision agreement, data provider, or structure usage, or to query for all registrations in the registry. In addition the search can be refined by providing constraints in the form of explicit time periods, constraint regions, and key sets. When constraint regions and key sets are provided they will be effectively processed by first matching all data for the included keys and regions (all available data if there are none) and then removing any data matching the excluded keys or regions.
235
236 Attributes:
237 returnConstraints?
238
239 Content:
240 QueryType, (All|ProvisionAgreement|DataProvider|Dataflow|Metadataflow), ReferencePeriod?, (DataKeySet|CubeRegion|MetadataTargetRegion)
241
242 Attribute Documentation:
243
244 |**Name**|**Type**|**Documentation**|
245 |returnConstraints (default: false)|xs:boolean|The returnConstraints attribute determines whether information about the constraints on the data or metadata sets returned should also be sent the results.|
246
247 Element Documentation:
248
249 |**Name**|**Type**|**Documentation**|
250 |QueryType|QueryTypeType|QueryType defines the type of sets (data, metadata, or both) that are being queried for.|
251 |All|EmptyType|All indicates that all registrations meeting the other criteria of the query should be returned.|
252 |ProvisionAgreement|ProvisionAgreementRe ferenceType|ProvisionAgreement provides a reference to a provision agreement in the registry, for which all registered sets meeting the other criteria of this query should be returned. The reference is provided as a URN and/or a complete set of reference fields.|
253 |DataProvider|DataProviderReferenc eType|DataProvider provides a reference to a data provider in the registry, for which all registered sets meeting the other criteria of this query should be returned. The reference is provided as a URN and/or a complete set of reference fields.|
254 |Dataflow|DataflowReferenceTyp e|Dataflow provides a reference to a data flow in the registry, for which all registered sets meeting the other criteria of this query should be returned. The reference is provided as a URN and/or a complete set of reference fields.|
255 |Metadataflow|MetadataflowReferenc eType|Metadataflow provides a reference to a metadata flow in the registry, for which all registered sets meeting the other criteria of this query should be returned. The reference is provided as a URN and/or a complete set of reference fields|
256 |ReferencePeriod|ReferencePeriodType|ReferencePeriod provides an inclusive start and end date for the data or metadata being sought.|
257 |DataKeySet|DataKeySetType|DataKeySet is used to provide a set of included or excluded keys which serves to refine the data being sought.|
258 |CubeRegion|CubeRegionType|CubeRegion is used to provide sets of include or excluded values for dimensions when querying for data.|
259 |MetadataTargetRegion|MetadataTargetRegion Type|MetadataTargetRegion is used to provide sets of included or excluded values for identifier components when querying for metadata.|
260
261 **QueryRegistrationResponseType:** QueryRegistrationResponseType describes the structure of a registration query response. It provides a status for the request, and if successful, the resulting data and/or metadata results.
262
263 Content:
264 StatusMessage, QueryResult
265
266 Element Documentation:
267
268 |**Name**|**Type**|**Documentation**|
269 |StatusMessage|StatusMessageType|StatusMessage provides that status for the registration query request, and if necessary, any error or warning information.|
270 |QueryResult|QueryResultType|QueryResult contains a result for a successful registration query. It can occur multiple times, for each registration the meets the conditions specified in the query.|
271
272 **QueryResultType:** QueryResultType describes the structure of a query result for a single data source. Either a data result or metadata result is detailed, depending on the data source.
273
274 Attributes:
275 timeSeriesMatch
276
277 Content:
278 (DataResult|MetadataResult)
279
280 Attribute Documentation:
281
282 |**Name**|**Type**|**Documentation**|
283 |timeSeriesMatch|xs:boolean|The timeSeriesMatch attribute is true when the result is an exact match with the key found in the registry - that is, when the registered data source provides a matching key. It is set to false when the data source is registered with cube-region constraints, or in any other circumstance when it cannot be established that the sought-for keys have been exactly matched. This is always true when the resulting data source is the source of a metadata set.|
284
285 Element Documentation:
286
287 |**Name**|**Type**|**Documentation**|
288 |DataResult|ResultType| |
289 |MetadataResult|ResultType| |
290
291 **ResultType:** ResultType contains the details about a data or metadata source, through the complete registration information. In addition, a reference to the content constraints for the data source may be provided, if the query requested this information.
292
293 Content:
294 Registration, Constraint
295
296 Element Documentation:
297
298 |**Name**|**Type**|**Documentation**|
299 |Registration|RegistrationType|Registration provides the details of a matching registration. In addition to the data source and provision agreement information, the id of the registration must also be provided.|
300 |Constraint|ConstraintReferenceT ype|Constraint provides a reference to a data or metadata constraint in the registry for the resulting data source (or possibly constraints base on the registration provision agreement, data provider, structure usage, or structure). The reference is provided for by a URN and/or a complete set of reference fields.|
301
302 **SubmitStructureRequestType:** SubmitStructureRequestType describes the structure of a structure submission. Structural components are provided either in-line or referenced via a SDMX-ML Structure message external to the registry. A default action and external reference resolution action are all provided for each of the contained components, but can be overridden on a per component basis.
303
304 Attributes:
305 action?, externalDependencies?
306
307 Content:
308 (StructureLocation|Structures), SubmittedStructure
309
310 Attribute Documentation:
311
312 |**Name**|**Type**|**Documentation**|
313 |action (default: Append)|ActionType|The action attribute indicates the default action (append-add, replace-update, delete, or no action-informational) to be taken on all structural components in either the external SDMX-ML Structure message or the in-line components. The default action is Append. The Replace action is not applicable to final structures in the repository, and will produce an error condition, as these can be versioned but not modified. To submit a later version of a structural object, the object should include the incremented version number.|
314 |externalDependencies (default: false)|xs:boolean|The externalDependencies attribute indicates the default resolution of external dependencies. This should be set to true if the repository is expected to use external reference URLs in the structural components to retrieve any externally referenced objects that is used by a non-external object.|
315
316 Element Documentation:
317
318 |**Name**|**Type**|**Documentation**|
319
320 |StructureLocation|xs:anyURI|StructureLocation provides the location of a SDMX-ML Structure message, external to the repository that can be retrieved by the repository submission service.|
321 |Structures|StructuresType|Structures allows for the inline definition of structural components for submission.|
322 |SubmittedStructure|SubmittedStructureTy pe|SubmittedStructure contains a reference to one of the structural maintainable artefacts detailed in the external SDMX-ML Structure message or in-line and provides an override for the default action. This should only be used if the action to be performed on the referenced structural object is different than the default action. For example, one may want to append all structural components of a structure message, save one codelist. This codelist could be referenced in a submitted structure element and given an action of Informational.|
323
324 **SubmittedStructureType:** SubmittedStructureType generally references a submitted structural object. When used in a submit structure request, its purpose is to override the default action or external dependency resolution behavior. If neither of these indicators are set, then it will be ignored. In a submit structure response, it is used to reference a submitted object for the purpose of providing a status for the submission. In this case, the action attribute should be populated in order to echo the requested action.
325
326 Attributes:
327 action?, externalDependencies?
328
329 Content:
330 MaintainableObject
331
332 Attribute Documentation:
333
334 |**Name**|**Type**|**Documentation**|
335 |action|ActionType|The action attribute will indicate the action to be taken on the referenced structural object. This should be provided when this structure is used in a submit structure response.|
336 |externalDependencies|xs:boolean|The externalDependencies attribute should be set to true if the repository is expected to use external reference URLs in the structural components to retrieve objects on which the referenced object has dependencies. (Thus, if a data structure referenced here is being submitted to the repository, and the structure message has URLs which point to the locations of the codelists it uses, then this attribute should be set to true). This should not be provided when this structure is used in a submit structure response.|
337
338 Element Documentation:
339
340 |**Name**|**Type**|**Documentation**|
341 |MaintainableObject|MaintainableUrnRefer enceType| |
342
343 **SubmitStructureResponseType:** SubmitStructureResponseType describes the structure of a response to a structure submission. For each submitted structure, a Result will be returned.
344
345 Content:
346 SubmissionResult+
347
348 Element Documentation:
349
350 |**Name**|**Type**|**Documentation**|
351 |SubmissionResult|SubmissionResultType|SubmissionResult provides a status for each submitted structural object.|
352
353 **SubmissionResultType:** SubmissionResultType provides the status of the structural object submission request. It will identify the object submitted, report back the action requested, and convey the status and any error messages which are relevant to the submission.
354
355 Content:
356 SubmittedStructure, StatusMessage
357
358 Element Documentation:
359
360 |**Name**|**Type**|**Documentation**|
361 |SubmittedStructure|SubmittedStructureTy pe|SubmittedStructure provides a reference to the submitted structural object and echoes back the action requested for it.|
362 |StatusMessage|StatusMessageType|StatusMessage provides that status for the submission of the structural object, and if necessary, any error or warning information.|
363
364 **SubmitSubscriptionsRequestType:** SubmitSubscriptionsRequestType defines the payload of a request message used to submit addtions, updates, or deletions of subscriptions. Subscriptions are submitted to the registry to subscribe to registration and change events for specific registry resources.
365
366 Content:
367 SubscriptionRequest+
368
369 Element Documentation:
370
371 |**Name**|**Type**|**Documentation**|
372 |SubscriptionRequest|SubscriptionRequestT ype| |
373
374 **SubscriptionType:** SubscriptionType describes the details of a subscription to a registration or change event for registry resources. When it occurs as the content of a response message, the registry URN must be provide, unless the response is a failure notification for the creation of a new subscription.
375
376 Content:
377 Organisation, RegistryURN?, NotificationMailTo*, NotificationHTTP*, SubscriberAssignedID?, ValidityPeriod, EventSelector
378
379 Element Documentation:
380
381 |**Name**|**Type**|**Documentation**|
382 |Organisation|OrganisationReferenc eType|Organisation provides a reference to the organisation that owns this subscription. The reference is provided via a URN and/or a complete set of reference fields.|
383 |RegistryURN|xs:anyURI|RegistryURN is used to identify the subscription in the case of deletion or modification. This should be provided in all response messages, unless the response it a notification of the failure to create a newly submitted subscription - in which case there will be no registry assigned URN.|
384 |NotificationMailTo|NotificationURLType|NotificationMailTo holds an e-mail address (the "mailto~:" protocol). Multiple email address can be notified for a single subscription.|
385 |NotificationHTTP|NotificationURLType|NotificationHTTP holds an http address to which notifications can be addressed as POSTs. Multiple http address may be notified for a single subscription event.|
386 |SubscriberAssignedID|IDType|SubscriberAssignedID allows the subscriber to specify an identification which will be returned as part of the notification for the subscribed events. This should be used if multiple new requests are made, so that the responses can be accurately correlated to the requests.|
387 |ValidityPeriod|ValidityPeriodType|Validity period sets a start and end date for the subscription.|
388 |EventSelector|EventSelectorType|EventSelector indicates an event or events for the subscription.|
389
390 **SubscriptionRequestType:** SubscriptionRequestType describes the structure of a single subscription request. It contains subscription details and an action field to indicate the action to be taken on the contained subscription. Note that if the action is update or delete, then the registry supplied URN for the subscription must be included.
391
392 Attributes:
393 action
394
395 Content:
396 Subscription
397
398 Attribute Documentation:
399
400 |**Name**|**Type**|**Documentation**|
401 |action|ActionType|The action attribute indicates whether this is an addition, a modification, or a deletion of a subscription.|
402
403 Element Documentation:
404
405 |**Name**|**Type**|**Documentation**|
406 |Subscription|SubscriptionType|Subscription contains the details of the subscription to be added, updated, or deleted.|
407
408 **SubmitSubscriptionsResponseType:** SubmitSubscriptionsResponseType describes the structure of the response to a new subscription submission. A status is provided for each subscription in the request.
409
410 Content:
411 SubscriptionStatus+
412
413 Element Documentation:
414
415 |**Name**|**Type**|**Documentation**|
416 |SubscriptionStatus|SubscriptionStatusTy pe|SubscriptionStatus contains information which describes the success or failure of a subscription request, providing any error messages in the event of failure. The statuses should occur in the same order as the requests when responding to a message with multiple subscription requests. If a subscriber-assigned identification for the subscription is provided, it will be returned to allow for accurate matching of the responses to the requests. A registry assigned URN will be returned for any successfully created, updated, or deleted subscription.|
417
418 **SubscriptionStatusType:** SubscriptionStatusType describes the structure a status for a single subscription request.
419
420 Content:
421 SubscriptionURN?, SubscriberAssignedID?, StatusMessage
422
423 Element Documentation:
424
425 |**Name**|**Type**|**Documentation**|
426 |SubscriptionURN|xs:anyURI|SubscriptionURN contains the registry generated URN for the subscription, and will be returned for any successfully created, updated, or deleted subscription.|
427 |SubscriberAssignedID|IDType|SubscriberAssignedID is the id assigned by the subscriber to the subscription. If it existed in the subscription request, it will be returned.|
428 |StatusMessage|StatusMessageType|StatusMessage provides that status for the subscription request, and if necessary, any error or warning information.|
429
430 **QuerySubscriptionRequestType:** QuerySubscriptionRequestType describes the structure of a query for subscriptions. Subscriptions for a given organisation may be retrieved.
431
432 Content:
433 Organisation
434
435 Element Documentation:
436
437 |**Name**|**Type**|**Documentation**|
438 |Organisation|OrganisationReferenc eType|Organisation provides a reference to the data consumer for which the subscription details should be returned.|
439
440 **QuerySubscriptionResponseType:** QuerySubscriptionResponseType describes the structure of a subscription query response. A status will describe the success or failure of the request (and provide error or warning messages if necessary). If the query was successful, details of all of the organisation's subscriptions will be provided.
441
442 Content:
443 StatusMessage, Subscription
444
445 Element Documentation:
446
447 |**Name**|**Type**|**Documentation**|
448 |StatusMessage|StatusMessageType|StatusMessage provides that status for the query subscription request, and if necessary, any error or warning information.|
449 |Subscription|SubscriptionType|Subscription contains the details of a subscription for the organisation. This may occur multiple times for each subscription.|
450
451 **NotifyRegistryEventType:** NotifyRegistryEventType describes the structure a registry notification, in response to a subscription to a registry event. At a minimum, the event time, a reference to the change object, a reference to the underlying subscription triggering the notification, and the action that took place on the object are sent. In addition, the full details of the object may be provided at the discretion of the registry. In the event that the details are not sent, it will be possible to query for the details of the changed object using the reference provided.
452
453 Content:
454 EventTime, (ObjectURN|RegistrationID), SubscriptionURN, EventAction, (StructuralEvent|RegistrationEvent)?
455
456 Element Documentation:
457
458 |**Name**|**Type**|**Documentation**|
459 |EventTime|xs:dateTime|EventTime specifies the time of the triggering event.|
460 |ObjectURN|xs:anyURI|ObjectURN provides the URN of the object on which the event occurred, unless the event is related to a registration, in which case the RegistrationID element should be used.|
461 |RegistrationID|IDType|RegistrationID provides the id of the registration that underwent an event.|
462 |SubscriptionURN|xs:anyURI|SubscriptionURN provides the registry/repository URN of the subscription that is the cause of this notification being sent.|
463 |EventAction|ActionType|EventAction indicates the nature of the event - whether the action was an addition, a modification, or a deletion.|
464 |StructuralEvent|StructuralEventType|StructuralEvent is used to provide the details of the structural object that has changed.|
465 |RegistrationEvent|RegistrationEventTyp e|RegistrationEvent is used to provide the details or the registration object that has changed.|
466
467 **NotificationURLType:** NotificationURLType describes the structure of an http or email address. The content holds the addresses while an attribute indicates whether or not is expects the contents in a SOAP message.
468
469 Derivation:
470
471 xs:anySimpleType (restriction)
472 xs:anyURI (extension)
473 NotificationURLType
474
475 Attributes:
476 isSOAP?
477
478 Content:
479 Attribute Documentation:
480
481 |**Name**|**Type**|**Documentation**|
482 |isSOAP (default: false)|xs:boolean|The isSOAP attribute, if true, indicates the provided URL expects the notification to be sent in a SOAP message.|
483
484 **ValidityPeriodType:** ValidityPeriodType specifies inclusive start and end-dates for the subscription period.
485
486 Content:
487 StartDate, EndDate
488
489 Element Documentation:
490
491 |**Name**|**Type**|**Documentation**|
492 |StartDate|xs:date|StartDate is an inclusive start date for the subscription.|
493 |EndDate|xs:date|EndDate is an inclusive end date for the subscription.|
494
495 **EventSelectorType:** EventSelectorType describes the details of the events for a subscription. It allows subscribers to specify registry and repository events for which they wish to receive notifications.
496
497 Content:
498 (StructuralRepositoryEvents|DataRegistrationEvents|MetadataRegistrationEvents)[1..3]
499
500 Element Documentation:
501
502 |**Name**|**Type**|**Documentation**|
503 |StructuralRepository Events|StructuralRepository EventsType|StructuralRepositoryEvents details structural events for the subscription.|
504 |DataRegistrationEven ts|DataRegistrationEven tsType|DataRegistrationEvents details the data registration events for the subscription.|
505 |MetadataRegistration Events|MetadataRegistration EventsType|MetadataRegistrationEvents details the metadata registration events for the subscription.|
506
507 **StructuralRepositoryEventsType:** StructuralRepositoryEventsType details the structural events for the subscription. At least one maintenance agency must be specified, although it may be given a wildcard value (meaning the subscription is for the structural events of all agencies). This can also be a list of agencies to allow the subscription to subscribe the events of more than one agency. It should be noted that when doing so, all of the subsequent objects are assumed to apply to every agency in the list. The subscription is then refined by detailing the structural objects maintained by the agency for which the subscription should apply. It is possible to explicitly select all object events, all objects of given types, or to individually list out specific objects. Note that for any object, it is also possible to provide an explicit URN to reference a distinct object. In this case, the reference to maintenance agency described above is ignored. Although it is not required, if specific objects are being referenced by explicit URNs, it is good practice to list the agencies.
508
509 Attributes:
510 TYPE?
511
512 Content:
513 AgencyID+, (AllEvents|(AgencyScheme|DataConsmerScheme|DataProviderScheme|OrganisationUnitScheme|Dataflow|Metadataflow|CategoryScheme|Categorisation|Codelist|HierarchicalCodelist|ConceptScheme|MetadataStructureDefinition|KeyFamily|StructureSet|ReportingTaxonomy|Process|AttachmentConstraint|ContentConstraint|ProvisionAgreement|TransformationScheme|NameAliasScheme|NamePersonalisationScheme|RulesetScheme|UserDefinedOperatorScheme)+)
514
515 Attribute Documentation:
516
517 |**Name**|**Type**|**Documentation**|
518 |TYPE (fixed: STRUCTURE)|xs:string|TYPE is a fixed attribute that is used to ensure only of each event selector may be provided, when it is referenced in a uniqueness constraint.|
519
520 Element Documentation:
521
522 |**Name**|**Type**|**Documentation**|
523 |AgencyID|NestedIDQueryType|AgencyID specifies a maintenance agency for the object or objects indicated in the other fields. This can be either a specific ID, or a single wildcard character ("%"). A wild card character can be used to select all agencies, allowing a subscription to all events for particular object types. This can occur multiple times to list a of group of maintenance agencies, creating event subscriptions for all of the subsequent objects for each agency in the group. Note that if multiple agencies are supplied, then the wildcard character should not be used for any of them.|
524 |AllEvents|EmptyType|AllEvents creates a subscription to structural events for all structural objects maintained by the agencies referenced.|
525 |AgencyScheme|VersionableObjectEve ntType|AgencyScheme is used to subscribe to changes of agency schemes. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
526 |DataConsmerScheme|VersionableObjectEve ntType|DataConsmerScheme is used to subscribe to changes of data consumer schemes. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
527 |DataProviderScheme|VersionableObjectEve ntType|DataProviderScheme is used to subscribe to changes of data provider schemes. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
528 |OrganisationUnitSche me|VersionableObjectEve ntType|OrganisationUnitScheme is used to subscribe to changes of organisation unit schemes. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
529 |Dataflow|VersionableObjectEve ntType|Dataflow is used to subscribe to changes of data flows. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
530 |Metadataflow|VersionableObjectEve ntType|Metadataflow is used to subscribe to changes of metadata flows. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
531 |CategoryScheme|VersionableObjectEve ntType|CategoryScheme is used to subscribe to changes of category schemes. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
532 |Categorisation|IdentifiableObjectEv entType|Categorisation is used to subscribe to changes of categorizations. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id field can be selected.|
533 |Codelist|VersionableObjectEve ntType|Codelist is used to subscribe to changes of code lists. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
534 |HierarchicalCodelist|VersionableObjectEve ntType|HierarchicalCodelist is used to subscribe to changes of hierarchical code lists. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
535 |ConceptScheme|VersionableObjectEve ntType|ConceptScheme is used to subscribe to changes of concept schemes. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
536 |MetadataStructureDef inition|VersionableObjectEve ntType|MetadataStructureDefinition is used to subscribe to changes of metadata structure definitions. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
537 |KeyFamily|VersionableObjectEve ntType|KeyFamily is used to subscribe to changes of key families. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
538 |StructureSet|VersionableObjectEve ntType|StructureSet is used to subscribe to changes of structure sets. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
539 |ReportingTaxonomy|VersionableObjectEve ntType|ReportingTaxonomy is used to subscribe to changes of reporting taxonomies. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
540 |Process|VersionableObjectEve ntType|Process is used to subscribe to changes of processes. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
541 |AttachmentConstraint|VersionableObjectEve ntType|AttachmentConstraint is used to subscribe to changes of attachment constraints. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
542 |ContentConstraint|VersionableObjectEve ntType|ContentConstraint is used to subscribe to changes of content constraints. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
543 |ProvisionAgreement|VersionableObjectEve ntType|ProvisionAgreement is used to subscribe to changes of a provision agreement. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
544 |TransformationScheme|VersionableObjectEve ntType|TransformationScheme is used to subscribe to changes of a transformation scheme. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
545 |NameAliasScheme|VersionableObjectEve ntType|NameAliasScheme is used to subscribe to changes of a name alias scheme. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
546 |NamePersonalisationS cheme|VersionableObjectEve ntType|NamePersonalisationScheme is used to subscribe to changes of a name peronsalisation scheme. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
547 |RulesetScheme|VersionableObjectEve ntType|RulesetScheme is used to subscribe to changes of a ruleset scheme. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
548 |UserDefinedOperatorS cheme|VersionableObjectEve ntType|UserDefinedOperatorScheme is used to subscribe to changes of a user defined operator scheme. The maintenance agencies of the object are those identified in the AgencyID collection, effectively making separate version of this query for each agency specified. The agency is ignored if the content of this is a URN, which references an explicit object. Otherwise, either all objects of this type or specific object according to the id and version fields can be selected.|
549
550 **IdentifiableObjectEventType:** IdentifiableObjectEventType describes the structure of a reference to an identifiable object's events. Either all instances of the object matching the inherited criteria, a specific instance, or specific instances of the object may be selected.
551
552 Content:
553 (All|URN|ID)
554
555 Element Documentation:
556
557 |**Name**|**Type**|**Documentation**|
558 |All|EmptyType|All subscribes to the events all instances of the containing object meeting the other criteria specified.|
559 |URN|xs:anyURI|URN subscribes to the events of the specific instance of the object type referenced by this URN. Note that when this field is used, the agency information inherited from the structural repository event container is ignored.|
560 |ID|IDQueryType|ID subscribes to the events of the specific instance of the object type where the value provided here matches the id of the object. The default value is the wildcard character("%").|
561
562 **VersionableObjectEventType:** VersionableObjectEventType describes the structure of a reference to a versionable object's events. Either all instances of the object matching the inherited criteria, a specific instance, or specific instances of the object may be selected.
563
564 Content:
565 (All|URN|(ID, Version))
566
567 Element Documentation:
568
569 |**Name**|**Type**|**Documentation**|
570 |All|EmptyType|All subscribes to the events all instances of the containing object meeting the other criteria specified.|
571 |URN|xs:anyURI|URN subscribes to the events of the specific instance of the object type referenced by this URN. Note that when this field is used, the agency information inherited from the structural repository event container is ignored.|
572 |ID|IDQueryType|ID subscribes to the events of the specific instance of the object type where the value provided here matches the id of the object and the value provided in the version field matches the version of the object. The default value is the wildcard character("%").|
573 |Version|VersionQueryType|Version subscribes to the events of the specific instance of the object type where the value provided in the id field matches the id of the object and the value here matches the version of the object. The default value is the wildcard character("%"). Note that in addition to being wild-carded, this can also be bound to the latest version of the object with the late-bound character("\*").|
574
575 **DataRegistrationEventsType:** DataRegistrationEventsType details the data registration events for the subscription. It is possible to subscribe to all data registration events in the repository, or specific events for; single registrations, provision agreements, data providers, data flows, key families, and categories that categorize data flows or key families.
576
577 Attributes:
578 TYPE?
579
580 Content:
581 (AllEvents|(RegistrationID|ProvisionAgreement|DataProvider|DataflowReference|KeyFamilyReference|Category)+)
582
583 Attribute Documentation:
584
585 |**Name**|**Type**|**Documentation**|
586 |TYPE (fixed: DATA)|xs:string|TYPE is a fixed attribute that is used to ensure only of each event selector may be provided, when it is referenced in a uniqueness constraint.|
587
588 Element Documentation:
589
590 |**Name**|**Type**|**Documentation**|
591 |AllEvents|EmptyType|AllEvents subscribes to all data registration events in the repository.|
592 |RegistrationID|IDType|RegistrationID subscribes to all the data registration events for the unique registration referenced.|
593 |ProvisionAgreement|ProvisionAgreementRe ferenceType|ProvisionAgreementReference subscribes to all data registration events for the explicitly referenced provision agreement.|
594 |DataProvider|DataProviderReferenc eType|DataProviderReference subscribes to all data registration events for the explicitly referenced data provider.|
595 |DataflowReference|MaintainableEventTyp e|DataflowReference subscribes to all data registration events for the data flows referenced by this object. This may reference one or more data flows, as the specific references fields allow for a wild-carded value.|
596 |KeyFamilyReference|MaintainableEventTyp e|KeyFamilyReference subscribes to all data registration events for the key families referenced by this object. This may reference one or more key families, as the specific references fields allow for a wild-carded value.|
597 |Category|CategoryReferenceTyp e|Category subscribes to all data registration events for any data flows or key families that are categorized by the referenced category.|
598
599 **MetadataRegistrationEventsType:** MetadataRegistrationEventsType details the metadata registration events for the subscription. It is possible to subscribe to all metadata registration events in the repository, or specific events for; single registrations, provision agreements, data providers, metadata flows, metadata structure definitions, and categories that categorize metadata flows or metadata structure definitions.
600
601 Attributes:
602 TYPE?
603
604 Content:
605 (AllEvents|(RegistrationID|ProvisionAgreement|DataProvider|MetadataflowReference|MetadataStructureDefinitionReference|Category)+)
606
607 Attribute Documentation:
608
609 |**Name**|**Type**|**Documentation**|
610 |TYPE (fixed: METADATA)|xs:string|TYPE is a fixed attribute that is used to ensure only of each event selector may be provided, when it is referenced in a uniqueness constraint.|
611
612 Element Documentation:
613
614 |**Name**|**Type**|**Documentation**|
615 |AllEvents|EmptyType|AllEvents subscribes to all metadata registration events in the repository.|
616 |RegistrationID|IDType|RegistrationID subscribes to all the metadata registration events for the unique registration referenced.|
617 |ProvisionAgreement|ProvisionAgreementRe ferenceType|ProvisionAgreementReference subscribes to all metadata registration events for the explicitly referenced provision agreement.|
618 |DataProvider|DataProviderReferenc eType|DataProvider subscribes to all metadata registration events for the explicitly referenced data provider.|
619 |MetadataflowReferenc e|MaintainableEventTyp e|MetadataflowReference subscribes to all metadata registration events for the metadata flows referenced by this object. This may reference one or more metadata flows, as the specific references fields allow for a wild-carded value.|
620 |MetadataStructureDef initionReference|MaintainableEventTyp e|MetadataStructureDefinitionReference subscribes to all metadata registration events for the metadata structure definitions referenced by this object. This may reference one or more metadata structure definitions, as the specific references fields allow for a wild-carded value.|
621 |Category|CategoryReferenceTyp e|Category subscribes to all metadata registration events for any metadata flows or metadata structure definitions that are categorized by the referenced category.|
622
623 **MaintainableEventType:** MaintainableEventType provides a reference to a maintainable object's event with either the URN of the specific object, or a set of potentially wild-carded reference fields.
624
625 Content:
626 (URN|Ref)
627
628 Element Documentation:
629
630 |**Name**|**Type**|**Documentation**|
631 |URN|xs:anyURI|URN provides an explicit reference to a single object.|
632 |Ref|MaintainableQueryTyp e|Ref provides a reference to potentially many object through the use of possible wild-carded reference fields.|
633
634 **StructuralEventType:** StructuralEventType provides the details of a structure event, specifically the object that changed.
635
636 Content:
637 Structures
638
639 Element Documentation:
640
641 |**Name**|**Type**|**Documentation**|
642 |Structures|StructuresType|Structures contains the details of the structural object that has triggered the event. Although this container allows for multiple structural object, it should only contain the one changed object.|
643
644 **RegistrationEventType:** This provides the details of a data or metadata registration event for the purposes of notification.
645
646 Content:
647 Registration
648
649 Element Documentation:
650
651 |**Name**|**Type**|**Documentation**|
652 |Registration|RegistrationType|Registration provides the changed details of the data or metadata registration.|
653
654 === 2.1.3 Simple Types ===
655
656 **IDQueryType:** IDQueryType is a simple type that allows for an identifier to be substituted with a wild card character ("%").
657
658 Union of:
659 IDType, WildCardValueType.
660
661 **NestedIDQueryType:** NestedIDQueryType is a simple type that allows for a nested identifier to be substituted with a wild card character ("%").
662
663 Union of:
664 NestedIDType, WildCardValueType.
665
666 **VersionQueryType:** VersionQueryType is a simple type that allows for a version number to be substituted with a wild card character ("%") or a late bound character ("\*").
667
668 Union of:
669 LegacyVersionNumberType, SemanticVersionNumberType, SemanticVersionReferenceType, WildcardType, WildCardValueType.
670
671 **StatusType:** StatusType provides an enumeration of values that detail the status of queries or requests.
672
673 Derived by restriction of xs:NMTOKEN.
674
675 Enumerations:
676
677 |**Value**|**Documentation**|
678 |Success|Query or request successful.|
679 |Warning|Query or request successful, but with warnings.|
680 |Failure|Query or request not successful.|
681
682 **QueryTypeType:** QueryType provides an enumeration of values which specify the objects in the result-set for a registry query.
683
684 Derived by restriction of xs:NMTOKEN.
685
686 Enumerations:
687
688 |**Value**|**Documentation**|
689 |DataSets|Only references data sets should be returned.|
690 |MetadataSets|Only references to metadata sets should be returned.|
691 |AllSets|References to both data sets and metadata sets should be returned.|