-
Notifications
You must be signed in to change notification settings - Fork 45
/
Copy pathOrg.OData.Core.V1.xml
579 lines (508 loc) · 36 KB
/
Org.OData.Core.V1.xml
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
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
<?xml version="1.0" encoding="utf-8"?>
<!--
Technical Committee:
OASIS Open Data Protocol (OData) TC
https://www.oasis-open.org/committees/odata
Chairs:
- Ralf Handl (ralf.handl@sap.com), SAP SE
- Ram Jeyaraman (Ram.Jeyaraman@microsoft.com), Microsoft
Editors:
- Ralf Handl (ralf.handl@sap.com), SAP SE
- Ram Jeyaraman (Ram.Jeyaraman@microsoft.com), Microsoft
- Michael Pizzo (mikep@microsoft.com), Microsoft
Additional artifacts:
This vocabulary is one component of a Work Product that also includes the following vocabulary components:
- OData Core Vocabulary. Latest version: https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.xml.
- OData Measures Vocabulary. Latest version: https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Measures.V1.xml.
- OData Capabilities Vocabulary. Latest version: https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Capabilities.V1.xml.
- OData Validation Vocabulary. Latest version: https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Validation.V1.xml.
- OData Aggregation Vocabulary. Latest version: https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Aggregation.V1.xml.
- OData Authorization Vocabulary. Latest version: https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Authorization.V1.xml.
Related work:
This vocabulary replaces or supersedes:
- OData Version 4.0 Vocabulary components: OData Core Vocabulary.
This vocabulary is related to:
- OData Version 4.01 Part 1: Protocol. Latest version: http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html.
- OData Version 4.01 Part 2: URL Conventions. Latest version: http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html.
- OData Common Schema Definition Language (CSDL) JSON Representation Version 4.01. Latest version: http://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.html.
- OData Common Schema Definition Language (CSDL) XML Representation Version 4.01. Latest version: http://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html.
- OData JSON Format Version 4.01. Latest version: http://docs.oasis-open.org/odata/odata-json-format/v4.01/odata-json-format-v4.01.html.
- OData Extension for Data Aggregation Version 4.0. Latest version: http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/odata-data-aggregation-ext-v4.0.html.
Abstract:
This vocabulary contains Core terms needed to write vocabularies.
-->
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<edmx:Reference Uri="https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Validation.V1.xml">
<edmx:Include Alias="Validation" Namespace="Org.OData.Validation.V1" />
</edmx:Reference>
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Org.OData.Core.V1" Alias="Core">
<Annotation Term="Core.Description">
<String>Core terms needed to write vocabularies</String>
</Annotation>
<Annotation Term="Core.Links">
<Collection>
<Record>
<PropertyValue Property="rel" String="latest-version" />
<PropertyValue Property="href" String="https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.xml" />
</Record>
<Record>
<PropertyValue Property="rel" String="alternate" />
<PropertyValue Property="href" String="https://oasis-tcs.github.io/odata-vocabularies/vocabularies/Org.OData.Core.V1.json" />
</Record>
<Record>
<PropertyValue Property="rel" String="describedby" />
<PropertyValue Property="href" String="https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/Org.OData.Core.V1.md" />
</Record>
</Collection>
</Annotation>
<!-- Versioning -->
<Term Name="ODataVersions" Type="Edm.String" Nullable="false" AppliesTo="EntityContainer">
<Annotation Term="Core.Description" String="A space-separated list of supported versions of the OData Protocol. Note that 4.0 is implied by 4.01 and does not need to be separately listed." />
</Term>
<Term Name="SchemaVersion" Type="Edm.String" Nullable="false" AppliesTo="Schema Reference">
<Annotation Term="Core.Description" String="Service-defined value representing the version of the schema. Services MAY use semantic versioning, but clients MUST NOT assume this is the case." />
</Term>
<Term Name="Revisions" Type="Collection(Core.RevisionType)" Nullable="false">
<Annotation Term="Core.Description" String="List of revisions of a model element" />
</Term>
<ComplexType Name="RevisionType">
<Property Name="Version" Type="Edm.String" Nullable="true">
<Annotation Term="Core.Description" String="The schema version with which this revision was first published" />
</Property>
<Property Name="Kind" Type="Core.RevisionKind" Nullable="false">
<Annotation Term="Core.Description" String="The kind of revision" />
</Property>
<Property Name="Description" Type="Edm.String" Nullable="false">
<Annotation Term="Core.Description" String="Text describing the reason for the revision" />
</Property>
</ComplexType>
<EnumType Name="RevisionKind">
<Member Name="Added">
<Annotation Term="Core.Description" String="Model element was added" />
</Member>
<Member Name="Modified">
<Annotation Term="Core.Description" String="Model element was modified" />
</Member>
<Member Name="Deprecated">
<Annotation Term="Core.Description" String="Model element was deprecated" />
</Member>
</EnumType>
<!--Documentation -->
<Term Name="Description" Type="Edm.String">
<Annotation Term="Core.Description" String="A brief description of a model element" />
<Annotation Term="Core.IsLanguageDependent" />
</Term>
<Term Name="LongDescription" Type="Edm.String">
<Annotation Term="Core.Description" String="A long description of a model element" />
<Annotation Term="Core.IsLanguageDependent" />
</Term>
<Term Name="Links" Type="Collection(Core.Link)" Nullable="false">
<Annotation Term="Core.Description" String="Link to related information" />
</Term>
<ComplexType Name="Link">
<Annotation Term="Core.Description" String="The Link term is inspired by the `atom:link` element, see [RFC4287](https://tools.ietf.org/html/rfc4287#section-4.2.7), and the `Link` HTTP header, see [RFC5988](https://tools.ietf.org/html/rfc5988)" />
<Property Name="rel" Type="Edm.String" Nullable="false">
<Annotation Term="Core.Description" String="Link relation type, see [IANA Link Relations](http://www.iana.org/assignments/link-relations/link-relations.xhtml)" />
</Property>
<Property Name="href" Type="Edm.String" Nullable="false">
<Annotation Term="Core.IsURL" />
<Annotation Term="Core.Description" String="URL of related information" />
</Property>
</ComplexType>
<Term Name="Example" Type="Core.ExampleValue" Nullable="false" AppliesTo="EntityType ComplexType TypeDefinition Term Property NavigationProperty Parameter ReturnType">
<Annotation Term="Core.Description" String="Example for an instance of the annotated model element" />
<Annotation Term="Core.Example">
<Record>
<PropertyValue Property="Description" String="The value of Core.Example is a record/object containing the example value and/or annotation examples." />
<Annotation Term="Core.Example" Qualifier="primitive">
<Record Type="Core.PrimitiveExampleValue">
<PropertyValue Property="Description" String="Primitive example value" />
<PropertyValue Property="Value" String="Hello World" />
</Record>
</Annotation>
<Annotation Term="Core.Example" Qualifier="complex">
<Record Type="Core.ComplexExampleValue">
<PropertyValue Property="Description" String="Complex example value" />
<PropertyValue Property="Value">
<Record>
<PropertyValue Property="ExampleProperty" String="with value" />
</Record>
</PropertyValue>
</Record>
</Annotation>
<Annotation Term="Core.Example" Qualifier="entity">
<Record Type="Core.EntityExampleValue">
<PropertyValue Property="Description" String="Entity example value" />
<PropertyValue Property="Value">
<Record>
<PropertyValue Property="ExampleKeyProperty" String="with value" />
</Record>
</PropertyValue>
</Record>
</Annotation>
<Annotation Term="Core.Example" Qualifier="external">
<Record Type="Core.ExternalExampleValue">
<PropertyValue Property="Description" String="External example" />
<PropertyValue Property="ExternalValue" String="https://services.odata.org/TripPinRESTierService/(S(5fjoyrzpnvzrrvmxzzq25i4q))/Me" />
</Record>
</Annotation>
</Record>
</Annotation>
</Term>
<ComplexType Name="ExampleValue">
<Property Name="Description" Type="Edm.String" Nullable="true">
<Annotation Term="Core.Description" String="Description of the example value" />
</Property>
</ComplexType>
<ComplexType Name="PrimitiveExampleValue" BaseType="Core.ExampleValue">
<Property Name="Value" Type="Edm.PrimitiveType" Nullable="false">
<Annotation Term="Core.Description" String="Example value for the custom parameter" />
</Property>
</ComplexType>
<ComplexType Name="ComplexExampleValue" BaseType="Core.ExampleValue">
<Property Name="Value" Type="Edm.ComplexType" Nullable="false">
<Annotation Term="Core.Description" String="Example value for the custom parameter" />
</Property>
</ComplexType>
<ComplexType Name="EntityExampleValue" BaseType="Core.ExampleValue">
<NavigationProperty Name="Value" Type="Edm.EntityType" Nullable="false">
<Annotation Term="Core.Description" String="Example value for the custom parameter" />
</NavigationProperty>
</ComplexType>
<ComplexType Name="ExternalExampleValue" BaseType="Core.ExampleValue">
<Property Name="ExternalValue" Type="Edm.String" Nullable="false">
<Annotation Term="Core.Description" String="Url reference to the value in its literal format" />
<Annotation Term="Core.IsURL" />
</Property>
</ComplexType>
<!-- Error, warning, and info messages in a (mostly) successful response -->
<Term Name="Messages" Type="Collection(Core.MessageType)" Nullable="false">
<Annotation Term="Core.Description" String="Instance annotation for warning and info messages" />
</Term>
<ComplexType Name="MessageType">
<Property Name="code" Type="Edm.String" Nullable="false">
<Annotation Term="Core.Description" String="Machine-readable, language-independent message code" />
</Property>
<Property Name="message" Type="Edm.String" Nullable="false">
<Annotation Term="Core.Description" String="Human-readable, language-dependent message text" />
<Annotation Term="Core.IsLanguageDependent" />
</Property>
<Property Name="severity" Type="Core.MessageSeverity" Nullable="false">
<Annotation Term="Core.Description" String="Severity of the message" />
</Property>
<Property Name="target" Type="Edm.String" Nullable="true">
<Annotation Term="Core.Description" String="A path to the target of the message detail, relative to the annotated instance" />
</Property>
<Property Name="details" Type="Collection(Core.MessageType)" Nullable="false">
<Annotation Term="Core.Description" String="List of detail messages" />
</Property>
</ComplexType>
<TypeDefinition Name="MessageSeverity" UnderlyingType="Edm.String">
<Annotation Term="Validation.AllowedValues">
<Collection>
<Record>
<PropertyValue Property="Value" String="success" />
<Annotation Term="Core.Description" String="Positive feedback - no action required" />
</Record>
<Record>
<PropertyValue Property="Value" String="info" />
<Annotation Term="Core.Description" String="Additional information - no action required" />
</Record>
<Record>
<PropertyValue Property="Value" String="warning" />
<Annotation Term="Core.Description" String="Warning - action may be required" />
</Record>
<Record>
<PropertyValue Property="Value" String="error" />
<Annotation Term="Core.Description" String="Error - action is required" />
</Record>
</Collection>
</Annotation>
</TypeDefinition>
<Term Name="ValueException" Type="Core.ValueExceptionType" Nullable="false">
<Annotation Term="Core.Description" String="The annotated value is problematic" />
</Term>
<ComplexType Name="ExceptionType" Abstract="true">
<Property Name="info" Type="Core.MessageType" Nullable="true">
<Annotation Term="Core.Description" String="Information about the exception" />
</Property>
</ComplexType>
<ComplexType Name="ValueExceptionType" BaseType="Core.ExceptionType">
<Property Name="value" Type="Edm.String" Nullable="true">
<Annotation Term="Core.Description" String="String representation of the exact value" />
</Property>
</ComplexType>
<Term Name="ResourceException" Type="Core.ResourceExceptionType" Nullable="false">
<Annotation Term="Core.Description" String="The annotated instance within a success payload is problematic" />
</Term>
<ComplexType Name="ResourceExceptionType" BaseType="Core.ExceptionType">
<Property Name="retryLink" Type="Edm.String" Nullable="true">
<Annotation Term="Core.Description" String="A GET request to this URL retries retrieving the problematic instance" />
<Annotation Term="Core.IsURL" />
</Property>
</ComplexType>
<Term Name="DataModificationException" Type="Core.DataModificationExceptionType" Nullable="false">
<Annotation Term="Core.Description" String="A modification operation failed on the annotated instance or collection within a success payload" />
</Term>
<ComplexType Name="DataModificationExceptionType" BaseType="Core.ExceptionType">
<Property Name="failedOperation" Type="Core.DataModificationOperationKind" Nullable="false">
<Annotation Term="Core.Description" String="The kind of modification operation that failed" />
</Property>
<Property Name="responseCode" Type="Edm.Int16" Nullable="true">
<Annotation Term="Core.Description" String="Response code of the failed operation, e.g. 424 for a failed dependency" />
<Annotation Term="Validation.Minimum" Decimal="100" />
<Annotation Term="Validation.Maximum" Decimal="599" />
</Property>
</ComplexType>
<EnumType Name="DataModificationOperationKind" UnderlyingType="Edm.Int32">
<Member Name="insert">
<Annotation Term="Core.Description" String="Insert new instance" />
</Member>
<Member Name="update">
<Annotation Term="Core.Description" String="Update existing instance" />
</Member>
<Member Name="upsert">
<Annotation Term="Core.Description" String="Insert new instance or update it if it already exists" />
</Member>
<Member Name="delete">
<Annotation Term="Core.Description" String="Delete existing instance" />
</Member>
<Member Name="invoke">
<Annotation Term="Core.Description" String="Invoke action or function" />
</Member>
<Member Name="link">
<Annotation Term="Core.Description" String="Add link between entities" />
</Member>
<Member Name="unlink">
<Annotation Term="Core.Description" String="Remove link between entities" />
</Member>
</EnumType>
<!-- Localization -->
<Term Name="IsLanguageDependent" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="Term Property">
<Annotation Term="Core.Description" String="Properties and terms annotated with this term are language-dependent" />
<Annotation Term="Core.RequiresType" String="Edm.String" />
</Term>
<TypeDefinition Name="Tag" UnderlyingType="Edm.Boolean">
<Annotation Term="Core.Description" String="This is the type to use for all tagging terms" />
</TypeDefinition>
<!-- Term Restrictions -->
<Term Name="RequiresType" Type="Edm.String" Nullable="false" AppliesTo="Term">
<Annotation Term="Core.Description" String="Terms annotated with this term can only be applied to elements that have a type that is identical to or derived from the given type name" />
</Term>
<Term Name="AppliesViaContainer" Type="Core.Tag" DefaultValue="true" Nullable="false" AppliesTo="Term">
<Annotation Term="Core.Description" String="The target path of an annotation with the tagged term MUST start with an entity container or the annotation MUST be embedded within an entity container, entity set or singleton" />
<Annotation Term="Core.LongDescription">
<String>Services MAY additionally annotate a container-independent model element (entity type, property, navigation property) if allowed by the `AppliesTo` property of the term
and the annotation applies to all uses of that model element.</String>
</Annotation>
</Term>
<!--Resource Paths -->
<Term Name="ResourcePath" Type="Edm.String" Nullable="false" AppliesTo="EntitySet Singleton ActionImport FunctionImport">
<Annotation Term="Core.Description" String="Resource path for entity container child, can be relative to xml:base and the request URL" />
<Annotation Term="Core.IsURL" />
</Term>
<Term Name="DereferenceableIDs" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="EntityContainer">
<Annotation Term="Core.Description" String="Entity-ids are URLs that locate the identified entity" />
</Term>
<Term Name="ConventionalIDs" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="EntityContainer">
<Annotation Term="Core.Description" String="Entity-ids follow OData URL conventions" />
</Term>
<!-- Permissions -->
<Term Name="Permissions" Type="Core.Permission" Nullable="false" AppliesTo="Property ComplexType TypeDefinition EntityType EntitySet NavigationProperty Action Function">
<Annotation Term="Core.Description" String="Permissions for accessing a resource" />
</Term>
<EnumType Name="Permission" IsFlags="true">
<Member Name="None" Value="0">
<Annotation Term="Core.Description" String="No permissions" />
</Member>
<Member Name="Read" Value="1">
<Annotation Term="Core.Description" String="Read permission" />
</Member>
<Member Name="Write" Value="2">
<Annotation Term="Core.Description" String="Write permission" />
</Member>
<Member Name="ReadWrite" Value="3">
<Annotation Term="Core.Description" String="Read and write permission" />
</Member>
<Member Name="Invoke" Value="4">
<Annotation Term="Core.Description" String="Permission to invoke actions" />
</Member>
</EnumType>
<!-- Batch Content ID -->
<Term Name="ContentID" Nullable="false" Type="Edm.String">
<Annotation Term="Core.Description" String="A unique identifier for nested entities within a request." />
</Term>
<!-- Metadata Extensions -->
<Term Name="DefaultNamespace" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="Schema Include">
<Annotation Term="Core.Description" String="Functions, actions and types in this namespace can be referenced in URLs with or without namespace- or alias- qualification." />
<Annotation Term="Core.LongDescription" String="Data Modelers should ensure uniqueness of schema children across all default namespaces, and should avoid naming bound functions, actions, or derived types with the same name as a structural or navigational property of the type." />
</Term>
<Term Name="Immutable" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="Property">
<Annotation Term="Core.Description" String="A value for this non-key property can be provided by the client on insert and remains unchanged on update" />
</Term>
<Term Name="Computed" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="Property">
<Annotation Term="Core.Description" String="A value for this property is generated on both insert and update" />
</Term>
<Term Name="ComputedDefaultValue" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="Property">
<Annotation Term="Core.Description" String="A value for this property can be provided by the client on insert and update. If no value is provided on insert, a non-static default value is generated" />
</Term>
<Term Name="IsURL" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="Property Term">
<Annotation Term="Core.Description" String="Properties and terms annotated with this term MUST contain a valid URL" />
<Annotation Term="Core.RequiresType" String="Edm.String" />
</Term>
<Term Name="AcceptableMediaTypes" Type="Collection(Edm.String)" Nullable="false" AppliesTo="EntityType Property Term TypeDefinition Parameter ReturnType">
<Annotation Term="Core.Description" String="Lists the MIME types acceptable for the annotated entity type marked with HasStream="true" or the annotated binary, stream, or string property or term" />
<Annotation Term="Core.LongDescription" String="The annotation of a TypeDefinition propagates to the model elements having this type" />
<Annotation Term="Core.IsMediaType" />
</Term>
<Term Name="MediaType" Type="Edm.String" AppliesTo="EntityType Property Term TypeDefinition Parameter ReturnType">
<Annotation Term="Core.Description" String="The media type of the media stream of the annotated entity type marked with HasStream="true" or the annotated binary, stream, or string property or term" />
<Annotation Term="Core.LongDescription" String="The annotation of a TypeDefinition propagates to the model elements having this type" />
<Annotation Term="Core.IsMediaType" />
</Term>
<Term Name="IsMediaType" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="Property Term">
<Annotation Term="Core.Description" String="Properties and terms annotated with this term MUST contain a valid MIME type" />
<Annotation Term="Core.RequiresType" String="Edm.String" />
</Term>
<Term Name="ContentDisposition" Type="Core.ContentDispositionType" Nullable="false" AppliesTo="EntityType Property Term">
<Annotation Term="Core.Description" String="The content disposition of the media stream of the annotated entity type marked with HasStream="true" or the annotated binary, stream, or string property or term" />
</Term>
<ComplexType Name="ContentDispositionType">
<Property Name="Type" Type="Edm.String" Nullable="false" DefaultValue="attachment">
<Annotation Term="Core.Description" String="The disposition type of the binary or stream value, see [RFC 6266, Disposition Type](https://datatracker.ietf.org/doc/html/rfc6266#section-4.2)" />
</Property>
<Property Name="Filename" Type="Edm.String">
<Annotation Term="Core.Description" String="The proposed filename for downloading the binary or stream value, see [RFC 6266, Disposition Parameter: 'Filename'](https://datatracker.ietf.org/doc/html/rfc6266#section-4.3)" />
</Property>
</ComplexType>
<Term Name="OptimisticConcurrency" Type="Collection(Edm.PropertyPath)" Nullable="false" AppliesTo="EntitySet">
<Annotation Term="Core.Description" String="Data modification requires the use of ETags. A non-empty collection contains the set of properties that are used to compute the ETag. An empty collection means that the service won't tell how it computes the ETag" />
</Term>
<Term Name="AdditionalProperties" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="EntityType ComplexType">
<Annotation Term="Core.Description" String="Instances of this type may contain properties in addition to those declared in $metadata" />
<Annotation Term="Core.LongDescription" String="If specified as false clients can assume that instances will not contain dynamic properties, irrespective of the value of the OpenType attribute." />
</Term>
<Term Name="AutoExpand" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="EntityType NavigationProperty Property">
<Annotation Term="Core.Description" String="The service will automatically expand this stream property, navigation property, or the media stream of this media entity type even if not requested with $expand" />
</Term>
<Term Name="AutoExpandReferences" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="NavigationProperty">
<Annotation Term="Core.Description" String="The service will automatically expand this navigation property as entity references even if not requested with $expand=.../$ref" />
</Term>
<Term Name="MayImplement" Type="Collection(Core.QualifiedTypeName)" Nullable="false">
<Annotation Term="Core.Description" String="A collection of qualified type names outside of the type hierarchy that instances of this type might be addressable as by using a type-cast segment." />
</Term>
<TypeDefinition Name="QualifiedTermName" UnderlyingType="Edm.String">
<Annotation Term="Core.Description" String="The qualified name of a term in scope." />
</TypeDefinition>
<TypeDefinition Name="QualifiedTypeName" UnderlyingType="Edm.String">
<Annotation Term="Core.Description" String="The qualified name of a type in scope." />
</TypeDefinition>
<TypeDefinition Name="QualifiedActionName" UnderlyingType="Edm.String">
<Annotation Term="Core.Description" String="The qualified name of an action in scope." />
</TypeDefinition>
<TypeDefinition Name="QualifiedBoundOperationName" UnderlyingType="Edm.String">
<Annotation Term="Core.Description" String="The qualified name of a bound action or function in scope." />
<Annotation Term="Core.LongDescription">
<String>Either
- the qualified name of an action, to indicate the single bound overload with the specified binding parameter type,
- the qualified name of a function, to indicate all bound overloads with the specified binding parameter type, or
- the qualified name of a function followed by parentheses containing a comma-separated list of parameter types, in the order of their definition, to identify a single function overload with the first (binding) parameter matching the specified parameter type.
</String>
</Annotation>
</TypeDefinition>
<Term Name="Ordered" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="Property NavigationProperty EntitySet ReturnType Term">
<Annotation Term="Core.Description" String="Collection has a stable order. Ordered collections of primitive or complex types can be indexed by ordinal." />
</Term>
<Term Name="PositionalInsert" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="Property NavigationProperty EntitySet">
<Annotation Term="Core.Description" String="Items can be inserted at a given ordinal index." />
</Term>
<Term Name="AlternateKeys" AppliesTo="EntityType EntitySet NavigationProperty" Type="Collection(Core.AlternateKey)" Nullable="false">
<Annotation Term="Core.Description" String="Communicates available alternate keys" />
</Term>
<ComplexType Name="AlternateKey">
<Property Type="Collection(Core.PropertyRef)" Name="Key" Nullable="false">
<Annotation Term="Core.Description" String="The set of properties that make up this key" />
</Property>
</ComplexType>
<ComplexType Name="PropertyRef">
<Property Type="Edm.PropertyPath" Name="Name" Nullable="false">
<Annotation Term="Core.Description" String="A path expression resolving to a primitive property of the entity type itself or to a primitive property of a complex or navigation property (recursively) of the entity type. The names of the properties in the path are joined together by forward slashes." />
</Property>
<Property Type="Edm.String" Name="Alias" Nullable="true">
<Annotation Term="Core.Description" String="A SimpleIdentifier that MUST be unique within the set of aliases, structural and navigation properties of the containing entity type that MUST be used in the key predicate of URLs" />
</Property>
</ComplexType>
<ComplexType Name="Dictionary" OpenType="true">
<Annotation Term="Core.Description" String="A dictionary of name-value pairs. Names must be valid property names, values may be restricted to a list of types via an annotation with term `Validation.OpenPropertyTypeConstraint`." />
<Annotation Term="Core.LongDescription">
<String>
Property|Type
:-------|:---
Any simple identifier | Any type listed in `Validation.OpenPropertyTypeConstraint`, or any type if there is no constraint
</String>
</Annotation>
</ComplexType>
<Term Name="OptionalParameter" Type="Core.OptionalParameterType" Nullable="false" AppliesTo="Parameter">
<Annotation Term="Core.Description" String="Supplying a value for the action or function parameter is optional." />
<Annotation Term="Core.LongDescription" String="All parameters marked as optional must come after any parameters not marked as optional. The binding parameter must not be marked as optional." />
</Term>
<ComplexType Name="OptionalParameterType">
<Property Name="DefaultValue" Type="Edm.String" Nullable="true">
<Annotation Term="Core.Description" String="Default value for an optional parameter of primitive or enumeration type, using the same rules as the `cast` function in URLs." />
<Annotation Term="Core.LongDescription" String="If no explicit DefaultValue is specified, the service is free on how to interpret omitting the parameter from the request. For example, a service might interpret an omitted optional parameter `KeyDate` as having the current date." />
</Property>
</ComplexType>
<Term Name="OperationAvailable" Type="Edm.Boolean" Nullable="true" DefaultValue="true" AppliesTo="Action Function">
<Annotation Term="Core.Description" String="Action or function is available" />
<Annotation Term="Core.LongDescription" String="The annotation value will usually be an expression, e.g. using properties of the binding parameter type for instance-dependent availability, or using properties of a singleton for global availability. The static value `null` means that availability cannot be determined upfront and is instead expressed as an operation advertisement." />
</Term>
<Term Name="RequiresExplicitBinding" Type="Core.Tag" DefaultValue="true" AppliesTo="Action Function">
<Annotation Term="Core.Description" String="This bound action or function is only available on model elements annotated with the ExplicitOperationBindings term." />
</Term>
<Term Name="ExplicitOperationBindings" Type="Collection(Core.QualifiedBoundOperationName)">
<Annotation Term="Core.Description" String="The qualified names of explicitly bound operations that are supported on the target model element. These operations are in addition to any operations not annotated with RequiresExplicitBinding that are bound to the type of the target model element." />
</Term>
<TypeDefinition Name="LocalDateTime" UnderlyingType="Edm.String">
<Annotation Term="Core.Description" String="A string representing a Local Date-Time value with no offset." />
<Annotation Term="Validation.Pattern" String="^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9](\\.[0-9]+)?)?$" />
</TypeDefinition>
<Term Name="SymbolicName" Type="Core.SimpleIdentifier" Nullable="false">
<Annotation Term="Core.Description" String="A symbolic name for a model element" />
</Term>
<TypeDefinition Name="SimpleIdentifier" UnderlyingType="Edm.String" MaxLength="128">
<Annotation Term="Core.Description" String="A [simple identifier](https://docs.oasis-open.org/odata/odata-csdl-xml/v4.01/odata-csdl-xml-v4.01.html#sec_SimpleIdentifier)" />
<Annotation Term="Validation.Pattern" String="^[\p{L}\p{Nl}_][\p{L}\p{Nl}\p{Nd}\p{Mn}\p{Mc}\p{Pc}\p{Cf}]{0,}$" />
</TypeDefinition>
<Term Name="GeometryFeature" Type="Core.GeometryFeatureType">
<Annotation Term="Core.Description" String="A [Feature Object](https://datatracker.ietf.org/doc/html/rfc7946#section-3.2) represents a spatially bounded thing" />
</Term>
<ComplexType Name="GeometryFeatureType">
<Annotation Term="Core.Description" String="A [Feature Object](https://datatracker.ietf.org/doc/html/rfc7946#section-3.2) represents a spatially bounded thing" />
<Property Name="geometry" Type="Edm.Geometry" Nullable="true">
<Annotation Term="Core.Description" String="Location of the Feature" />
</Property>
<Property Name="properties" Type="Core.Dictionary" Nullable="true">
<Annotation Term="Core.Description" String="Properties of the Feature" />
</Property>
<Property Name="id" Type="Edm.String" Nullable="true">
<Annotation Term="Core.Description" String="Commonly used identifer for a Feature" />
</Property>
</ComplexType>
<Term Name="AnyStructure" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="EntityType ComplexType">
<Annotation Term="Core.Description" String="Instances of a type are annotated with this tag if they have no common structure in a given response payload" />
<Annotation Term="Core.LongDescription">
<String>The select-list of a context URL MUST be `(@Core.AnyStructure)` if it would otherwise be empty,
but this instance annotation SHOULD be omitted from the response value.</String>
</Annotation>
</Term>
<Term Name="IsDelta" Type="Core.Tag" Nullable="false" DefaultValue="true" AppliesTo="ReturnType Parameter">
<Annotation Term="Core.Description" String="The annotated Action or Function Parameter or Return Type is represented as a Delta payload" />
<Annotation Term="Core.LongDescription">
<String>The parameter or result is represented as a delta payload, which may include deleted entries as well as changes to related
entities and relationships, according to the format-specific delta representation.</String>
</Annotation>
</Term>
</Schema>
</edmx:DataServices>
</edmx:Edmx>