From deae6115f5cb6e702a8400ff080faacb12a125cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Heiko=20Thei=C3=9Fen?= Date: Fri, 14 Jun 2024 13:23:26 +0200 Subject: [PATCH] Text fragments do not work reliably (#257) --- lib/csdl2markdown.js | 22 +- lib/md2html.js | 10 +- lib/transform.js | 12 +- test/csdl2markdown.test.js | 8 +- vocabularies/Org.OData.Aggregation.V1.md | 218 +++---- vocabularies/Org.OData.Authorization.V1.md | 122 ++-- vocabularies/Org.OData.Capabilities.V1.md | 666 ++++++++++----------- vocabularies/Org.OData.Core.V1.md | 254 ++++---- vocabularies/Org.OData.JSON.V1.md | 4 +- vocabularies/Org.OData.Measures.V1.md | 18 +- vocabularies/Org.OData.Repeatability.V1.md | 6 +- vocabularies/Org.OData.Temporal.V1.md | 64 +- vocabularies/Org.OData.Validation.V1.md | 46 +- 13 files changed, 719 insertions(+), 731 deletions(-) diff --git a/lib/csdl2markdown.js b/lib/csdl2markdown.js index 66997c1e..8f7d6f2c 100644 --- a/lib/csdl2markdown.js +++ b/lib/csdl2markdown.js @@ -217,7 +217,6 @@ module.exports.csdl2markdown = function (filename, csdl, referenced = {}) { const over = {}; overloads.forEach((o) => { - if (over[o.$$name]) o.$$parent = "overload"; over[o.$$name] = true; lines.push(""); lines.push(''); @@ -243,7 +242,6 @@ module.exports.csdl2markdown = function (filename, csdl, referenced = {}) { (o.$Parameter || []).forEach(function (p, i) { let desc; p.$$name = p.$Name; - p.$$parent = o.$$parent || o; const depr = deprecated(p); if (depr) desc = depr.Description; else desc = descriptionInTable(p); @@ -273,7 +271,6 @@ module.exports.csdl2markdown = function (filename, csdl, referenced = {}) { }); if (o.$ReturnType) { o.$ReturnType.$$name = "→"; - o.$ReturnType.$$parent = o.$$parent || o; lines.push( sourceLink(o.$ReturnType) + "|" + @@ -360,7 +357,6 @@ module.exports.csdl2markdown = function (filename, csdl, referenced = {}) { lines.push(":------------|:----------"); values.forEach((v) => { v.$$name = v.Value; - v.$$parent = typeDefinition; lines.push( sourceLink(v) + experimentalOrDeprecated(v) + @@ -447,7 +443,6 @@ module.exports.csdl2markdown = function (filename, csdl, referenced = {}) { const p = type[name]; p.$$name = name; p.$$filename = type.$$filename; - p.$$parent = type; let desc = ""; for (let t = type; t[name] && !desc; t = modelElement(t.$BaseType)) { desc = descriptionInTable(t[name]); @@ -538,7 +533,6 @@ module.exports.csdl2markdown = function (filename, csdl, referenced = {}) { } members.forEach((m) => { - m.$$parent = type; lines.push( sourceLink(m) + experimentalOrDeprecated(m) + @@ -645,7 +639,6 @@ module.exports.csdl2markdown = function (filename, csdl, referenced = {}) { if (allowedValues.length > 0) text.push("
Allowed values:"); allowedValues.forEach((v) => { v.$$name = v.Value; - v.$$parent = "nofragment"; let allowedValue = "
" + sourceLink(v) + experimentalOrDeprecated(v); const description = descriptionInTable(v); if (description) allowedValue += "
" + description; @@ -686,26 +679,13 @@ module.exports.csdl2markdown = function (filename, csdl, referenced = {}) { */ function sourceLink(modelElement, parent = false) { const line = modelElement[sourceLine]; - let textFragment; - if ( - modelElement.$$parent !== "overload" && - modelElement.$$parent !== "nofragment" - ) - textFragment = modelElement.$Kind ? modelElement : modelElement.$$parent; return ( (line ? "[" : "") + (modelElement.$Abstract || parent ? "*" : "") + modelElement.$$name + (modelElement.$Abstract || parent ? "*" : "") + (line - ? "](./" + - (modelElement.$$filename || filename) + - "#L" + - line + - (textFragment - ? `:~:text=<${textFragment.$Kind}%20Name="-,${textFragment.$$name},-"` - : "") + - ")" + ? "](" + (modelElement.$$filename || filename) + "#L" + line + ")" : "") ); } diff --git a/lib/md2html.js b/lib/md2html.js index 17d6ee29..9fe14b4b 100644 --- a/lib/md2html.js +++ b/lib/md2html.js @@ -4,7 +4,15 @@ const filter = require("pandoc-filter"); filter.stdio(function ({ t, c }, format, meta) { if (t === "Link" && !/^https?:\/\//.test(c[2][0])) { - c[2][0] = c[2][0].replace(/\.md(?=$|#)/, ".html"); + if (/^Org\.OData\..*?\.xml#L/.test(c[2][0])) + c[2][0] = + "https://github.com/oasis-tcs/odata-vocabularies/blob/main/vocabularies/" + + c[2][0]; + else if (/^com\.sap\..*?\.xml#L/.test(c[2][0])) + c[2][0] = + "https://github.com/SAP/odata-vocabularies/blob/main/vocabularies/" + + c[2][0]; + else c[2][0] = c[2][0].replace(/\.md(?=$|#)/, ".html"); return filter.Link(...c); } }); diff --git a/lib/transform.js b/lib/transform.js index 450635df..3ef8a7e5 100644 --- a/lib/transform.js +++ b/lib/transform.js @@ -26,8 +26,8 @@ fs.readdirSync(vocabFolder) colors.red( `${vocabFolder + filename}:${e.parser.line}:${e.parser.column}: ${ e.message - }` - ) + }`, + ), ); process.exitCode = 1; return; @@ -45,7 +45,7 @@ fs.readdirSync(vocabFolder) } fs.writeFileSync( vocabFolder + vocab + ".json", - JSON.stringify(json, omitLineNumbers, 4) + JSON.stringify(json, omitLineNumbers, 4), ); }); @@ -72,13 +72,13 @@ fs.readdirSync(exampleFolder) const json = csdl.xml2json(xml, { strict: true }); fs.writeFileSync( exampleFolder + example + ".json", - JSON.stringify(json, null, 4) + JSON.stringify(json, null, 4), ); } catch (e) { console.error( colors.red( - `${xmlfile}:${e.parser.line}:${e.parser.column}: ${e.message}` - ) + `${xmlfile}:${e.parser.line}:${e.parser.column}: ${e.message}`, + ), ); process.exitCode = 1; } diff --git a/test/csdl2markdown.test.js b/test/csdl2markdown.test.js index e94ba505..abac2d13 100644 --- a/test/csdl2markdown.test.js +++ b/test/csdl2markdown.test.js @@ -285,18 +285,18 @@ describe("Non-OASIS Vocabularies", function () { "## Functions", "", '', - '### [condense](./overload.tst.xml#L11:~:text=', - "### [condense](./overload.tst.xml#L16) *(Deprecated)*", + "### [condense](overload.tst.xml#L16) *(Deprecated)*", "Deprecated in favor of overload 1", "", ]; diff --git a/vocabularies/Org.OData.Aggregation.V1.md b/vocabularies/Org.OData.Aggregation.V1.md index f39dc5fc..e73bc5a6 100644 --- a/vocabularies/Org.OData.Aggregation.V1.md +++ b/vocabularies/Org.OData.Aggregation.V1.md @@ -10,22 +10,22 @@ Related to the specification document [OData-Data-Agg-v4.0](http://docs.oasis-op Term|Type|Description :---|:---|:---------- -[ApplySupported](./Org.OData.Aggregation.V1.xml#L82:~:text=This entity set or collection supports the `$apply` system query option -[ApplySupportedDefaults](./Org.OData.Aggregation.V1.xml#L88:~:text=Default support of the `$apply` system query option for all collection-valued resources in the container

Annotating term ApplySupported for a specific collection-valued resource overrides the default support with the specified properties using PATCH semantics:

  • Primitive or collection-valued properties specified in ApplySupported replace the corresponding properties specified in ApplySupportedDefaults
  • Complex-valued properties specified in ApplySupported override the corresponding properties specified in ApplySupportedDefaults using PATCH semantics recursively
  • Properties specified neither in ApplySupported nor in ApplySupportedDefaults have their default value
-[Groupable](./Org.OData.Aggregation.V1.xml#L305:~:text=Deprecated in favor of [`ApplySupported/GroupableProperties`](#ApplySupported) -[Aggregatable](./Org.OData.Aggregation.V1.xml#L317:~:text=Deprecated in favor of [`ApplySupported/AggregatableProperties`](#ApplySupported) -[CustomAggregate](./Org.OData.Aggregation.V1.xml#L329:~:text=Dynamic property that can be used in the `aggregate` transformation
This term MUST be applied with a Qualifier, the Qualifier value is the name of the dynamic property. The value of the annotation MUST be the qualified name of a primitive type. The aggregated value will be of that type. -[ContextDefiningProperties](./Org.OData.Aggregation.V1.xml#L335:~:text=The annotated property or custom aggregate is only well-defined in the context of these properties
The context-defining properties need either be part of the result entities, or be restricted to a single value by a pre-filter operation. Examples are postal codes within a country, or monetary amounts whose context is the unit of currency. -[LeveledHierarchy](./Org.OData.Aggregation.V1.xml#L342:~:text=Defines a leveled hierarchy (OData-Data-Agg-v4.0, section 5.5.1) -[RecursiveHierarchy](./Org.OData.Aggregation.V1.xml#L346:~:text=Defines a recursive hierarchy (OData-Data-Agg-v4.0, section 5.5.2) -[UpPath](./Org.OData.Aggregation.V1.xml#L519:~:text=The string values of the node identifiers in a path from the annotated node to a start node in a traversal of a recursive hierarchy
This instance annotation occurs in the result set after a `traverse` transformation (OData-Data-Agg-v4.0, section 6.2.2.2). A use case for this is traversal with multiple parents, when this annotation takes as value one parent node identifier followed by one grandparent node identifier and so on. -[AvailableOnAggregates](./Org.OData.Aggregation.V1.xml#L528:~:text=This function is available on aggregated entities if the `RequiredProperties` are still defined +[ApplySupported](Org.OData.Aggregation.V1.xml#L82)|[ApplySupportedType](#ApplySupportedType)|This entity set or collection supports the `$apply` system query option +[ApplySupportedDefaults](Org.OData.Aggregation.V1.xml#L88)|[ApplySupportedBase](#ApplySupportedBase)|Default support of the `$apply` system query option for all collection-valued resources in the container

Annotating term ApplySupported for a specific collection-valued resource overrides the default support with the specified properties using PATCH semantics:

  • Primitive or collection-valued properties specified in ApplySupported replace the corresponding properties specified in ApplySupportedDefaults
  • Complex-valued properties specified in ApplySupported override the corresponding properties specified in ApplySupportedDefaults using PATCH semantics recursively
  • Properties specified neither in ApplySupported nor in ApplySupportedDefaults have their default value
+[Groupable](Org.OData.Aggregation.V1.xml#L305) *(Deprecated)*|[Tag](Org.OData.Core.V1.md#Tag)|Deprecated in favor of [`ApplySupported/GroupableProperties`](#ApplySupported) +[Aggregatable](Org.OData.Aggregation.V1.xml#L317) *(Deprecated)*|[Tag](Org.OData.Core.V1.md#Tag)|Deprecated in favor of [`ApplySupported/AggregatableProperties`](#ApplySupported) +[CustomAggregate](Org.OData.Aggregation.V1.xml#L329)|String|Dynamic property that can be used in the `aggregate` transformation
This term MUST be applied with a Qualifier, the Qualifier value is the name of the dynamic property. The value of the annotation MUST be the qualified name of a primitive type. The aggregated value will be of that type. +[ContextDefiningProperties](Org.OData.Aggregation.V1.xml#L335)|\[PropertyPath\]|The annotated property or custom aggregate is only well-defined in the context of these properties
The context-defining properties need either be part of the result entities, or be restricted to a single value by a pre-filter operation. Examples are postal codes within a country, or monetary amounts whose context is the unit of currency. +[LeveledHierarchy](Org.OData.Aggregation.V1.xml#L342)|\[PropertyPath\]|Defines a leveled hierarchy (OData-Data-Agg-v4.0, section 5.5.1) +[RecursiveHierarchy](Org.OData.Aggregation.V1.xml#L346)|[RecursiveHierarchyType](#RecursiveHierarchyType)|Defines a recursive hierarchy (OData-Data-Agg-v4.0, section 5.5.2) +[UpPath](Org.OData.Aggregation.V1.xml#L519)|\[String\]|The string values of the node identifiers in a path from the annotated node to a start node in a traversal of a recursive hierarchy
This instance annotation occurs in the result set after a `traverse` transformation (OData-Data-Agg-v4.0, section 6.2.2.2). A use case for this is traversal with multiple parents, when this annotation takes as value one parent node identifier followed by one grandparent node identifier and so on. +[AvailableOnAggregates](Org.OData.Aggregation.V1.xml#L528)|[AvailableOnAggregatesType](#AvailableOnAggregatesType)|This function is available on aggregated entities if the `RequiredProperties` are still defined ## Functions -### [isnode](./Org.OData.Aggregation.V1.xml#L371:~:text= -### [isroot](./Org.OData.Aggregation.V1.xml#L384:~:text= -### [isdescendant](./Org.OData.Aggregation.V1.xml#L397:~:text= -### [isancestor](./Org.OData.Aggregation.V1.xml#L429:~:text= -### [issibling](./Org.OData.Aggregation.V1.xml#L461:~:text= -### [isleaf](./Org.OData.Aggregation.V1.xml#L477:~:text= -### [rollupnode](./Org.OData.Aggregation.V1.xml#L490:~:text=Every instance in the output set of a `groupby` transformation with M `rolluprecursive` operators has M relationships to M nodes in M recursive hierarchies. This function returns the node x with path r to the root in relationship number N. If several such `groupby` transformations are nested, this function refers to the innermost one. -[→](./Org.OData.Aggregation.V1.xml#L516:~:text=Every instance in the output set of a `groupby` transformation with M `rolluprecursive` operators has M relationships to M nodes in M recursive hierarchies. This function returns the node x with path r to the root in relationship number N. If several such `groupby` transformations are nested, this function refers to the innermost one. +[→](Org.OData.Aggregation.V1.xml#L516)|EntityType| -## [ApplySupportedBase](./Org.OData.Aggregation.V1.xml#L99:~:text= -## [ApplySupportedType](./Org.OData.Aggregation.V1.xml#L118:~:text= -## [AggregatablePropertyType](./Org.OData.Aggregation.V1.xml#L137:~:text= -## [Transformation](./Org.OData.Aggregation.V1.xml#L155:~:text= -## [AggregationMethod](./Org.OData.Aggregation.V1.xml#L255:~:text=For navigation properties, it counts the distinct entities in the union of all entities related to entities in the input set. For collection-valued primitive properties, it counts the distinct items in the union of all collection values in the input set. +[sum](Org.OData.Aggregation.V1.xml#L264)|Can be applied to numeric values to return the sum of the non-null values, or null if there are no non-null values or the input set is empty +[min](Org.OData.Aggregation.V1.xml#L268)|Can be applied to values with a totally ordered domain to return the smallest of the non-null values, or null if there are no non-null values or the input set is empty +[max](Org.OData.Aggregation.V1.xml#L272)|Can be applied to values with a totally ordered domain to return the largest of the non-null values, or null if there are no non-null values or the input set is empty +[average](Org.OData.Aggregation.V1.xml#L276)|Can be applied to numeric values to return the sum of the non-null values divided by the count of the non-null values, or null if there are no non-null values or the input set is empty +[countdistinct](Org.OData.Aggregation.V1.xml#L280)|Counts the distinct values, omitting any null values
For navigation properties, it counts the distinct entities in the union of all entities related to entities in the input set. For collection-valued primitive properties, it counts the distinct items in the union of all collection values in the input set. -## [RollupType](./Org.OData.Aggregation.V1.xml#L292:~:text= -## [RecursiveHierarchyType](./Org.OData.Aggregation.V1.xml#L350:~:text= -## [HierarchyQualifier](./Org.OData.Aggregation.V1.xml#L359:~:text= -## [AvailableOnAggregatesType](./Org.OData.Aggregation.V1.xml#L531:~:text= -## [NavigationPropertyAggregationCapabilities](./Org.OData.Aggregation.V1.xml#L537:~:text= -## [CustomAggregateType](./Org.OData.Aggregation.V1.xml#L555:~:text=At least one of the specified security schemes are required to make a request against the service -[Authorizations](./Org.OData.Authorization.V1.xml#L78:~:text=Lists the methods supported by the service to authorize access +[SecuritySchemes](Org.OData.Authorization.V1.xml#L65)|\[[SecurityScheme](#SecurityScheme)\]|At least one of the specified security schemes are required to make a request against the service +[Authorizations](Org.OData.Authorization.V1.xml#L78)|\[[Authorization](#Authorization)\]|Lists the methods supported by the service to authorize access -## [SecurityScheme](./Org.OData.Authorization.V1.xml#L69:~:text= -## [*Authorization*](./Org.OData.Authorization.V1.xml#L82:~:text= -## [OpenIDConnect](./Org.OData.Authorization.V1.xml#L92:~:text= -## [Http](./Org.OData.Authorization.V1.xml#L99:~:text= -## [*OAuthAuthorization*](./Org.OData.Authorization.V1.xml#L108:~:text= -## [OAuth2ClientCredentials](./Org.OData.Authorization.V1.xml#L118:~:text= -## [OAuth2Implicit](./Org.OData.Authorization.V1.xml#L125:~:text= -## [OAuth2Password](./Org.OData.Authorization.V1.xml#L133:~:text= -## [OAuth2AuthCode](./Org.OData.Authorization.V1.xml#L140:~:text= -## [AuthorizationScope](./Org.OData.Authorization.V1.xml#L151:~:text= -## [ApiKey](./Org.OData.Authorization.V1.xml#L164:~:text= -## [KeyLocation](./Org.OData.Authorization.V1.xml#L173:~:text= -## [SchemeName](./Org.OData.Authorization.V1.xml#L185:~:text=The conformance level achieved by this service -[SupportedFormats](./Org.OData.Capabilities.V1.xml#L132:~:text=Media types of supported formats, including format parameters -[SupportedMetadataFormats](./Org.OData.Capabilities.V1.xml#L137:~:text=Media types of supported formats for $metadata, including format parameters -[AcceptableEncodings](./Org.OData.Capabilities.V1.xml#L142:~:text=List of acceptable compression methods for ($batch) requests, e.g. gzip -[AsynchronousRequestsSupported](./Org.OData.Capabilities.V1.xml#L148:~:text=Service supports the asynchronous request preference -[BatchContinueOnErrorSupported](./Org.OData.Capabilities.V1.xml#L152:~:text=Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. -[IsolationSupported](./Org.OData.Capabilities.V1.xml#L156:~:text=Supported odata.isolation levels -[CrossJoinSupported](./Org.OData.Capabilities.V1.xml#L165:~:text=Supports cross joins for the entity sets in this container -[CallbackSupported](./Org.OData.Capabilities.V1.xml#L169:~:text=Supports callbacks for the specified protocols -[ChangeTracking](./Org.OData.Capabilities.V1.xml#L191:~:text=Change tracking capabilities of this service or entity set -[CountRestrictions](./Org.OData.Capabilities.V1.xml#L212:~:text=Restrictions on /$count path suffix and $count=true system query option -[NavigationRestrictions](./Org.OData.Capabilities.V1.xml#L230:~:text=Restrictions on navigating properties according to OData URL conventions
Restrictions specified on an entity set are valid whether the request is directly to the entity set or through a navigation property bound to that entity set. Services can specify a different set of restrictions specific to a path, in which case the more specific restrictions take precedence. -[IndexableByKey](./Org.OData.Capabilities.V1.xml#L321:~:text=Supports key values according to OData URL conventions -[TopSupported](./Org.OData.Capabilities.V1.xml#L326:~:text=Supports $top -[SkipSupported](./Org.OData.Capabilities.V1.xml#L331:~:text=Supports $skip -[ComputeSupported](./Org.OData.Capabilities.V1.xml#L336:~:text=Supports $compute -[SelectSupport](./Org.OData.Capabilities.V1.xml#L341:~:text=Support for $select and nested query options within $select -[BatchSupported](./Org.OData.Capabilities.V1.xml#L378:~:text=Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. -[BatchSupport](./Org.OData.Capabilities.V1.xml#L382:~:text=Batch Support for the service -[FilterFunctions](./Org.OData.Capabilities.V1.xml#L428:~:text=List of functions and operators supported in filter expressions
If not specified, null, or empty, all functions and operators may be attempted. -[FilterRestrictions](./Org.OData.Capabilities.V1.xml#L434:~:text=Restrictions on filter expressions -[SortRestrictions](./Org.OData.Capabilities.V1.xml#L506:~:text=Restrictions on orderby expressions -[ExpandRestrictions](./Org.OData.Capabilities.V1.xml#L532:~:text=Restrictions on expand expressions -[SearchRestrictions](./Org.OData.Capabilities.V1.xml#L562:~:text=Restrictions on search expressions -[KeyAsSegmentSupported](./Org.OData.Capabilities.V1.xml#L600:~:text=Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection -[QuerySegmentSupported](./Org.OData.Capabilities.V1.xml#L604:~:text=Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) -[InsertRestrictions](./Org.OData.Capabilities.V1.xml#L610:~:text=Restrictions on insert operations -[DeepInsertSupport](./Org.OData.Capabilities.V1.xml#L689:~:text=Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) -[UpdateRestrictions](./Org.OData.Capabilities.V1.xml#L702:~:text=Restrictions on update operations -[DeepUpdateSupport](./Org.OData.Capabilities.V1.xml#L788:~:text=Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) -[DeleteRestrictions](./Org.OData.Capabilities.V1.xml#L801:~:text=Restrictions on delete operations -[CollectionPropertyRestrictions](./Org.OData.Capabilities.V1.xml#L845:~:text=Describes restrictions on operations applied to collection-valued structural properties -[OperationRestrictions](./Org.OData.Capabilities.V1.xml#L886:~:text=Restrictions for function or action operation -[AnnotationValuesInQuerySupported](./Org.OData.Capabilities.V1.xml#L906:~:text=Supports annotation values within system query options -[ModificationQueryOptions](./Org.OData.Capabilities.V1.xml#L910:~:text=Support for query options with modification requests (insert, update, action invocation) -[ReadRestrictions](./Org.OData.Capabilities.V1.xml#L934:~:text=Restrictions for retrieving a collection of entities, retrieving a singleton instance. -[CustomHeaders](./Org.OData.Capabilities.V1.xml#L976:~:text=Custom headers that are supported/required for the annotated resource ([Example](./Org.OData.Capabilities.V1.xml#L978)) -[CustomQueryOptions](./Org.OData.Capabilities.V1.xml#L1002:~:text=Custom query options that are supported/required for the annotated resource ([Example](./Org.OData.Capabilities.V1.xml#L1005))
If the entity container is annotated, the query option is supported/required by all resources in that container. -[MediaLocationUpdateSupported](./Org.OData.Capabilities.V1.xml#L1054:~:text=Stream property or media stream supports update of its media edit URL and/or media read URL -[DefaultCapabilities](./Org.OData.Capabilities.V1.xml#L1059:~:text=Default capability settings for all collection-valued resources in the container

Annotating a specific capability term, which is included as property in DefaultCapabilitiesType, for a specific collection-valued resource overrides the default capability with the specified properties using PATCH semantics:

  • Primitive or collection-valued properties specified in the specific capability term replace the corresponding properties specified in DefaultCapabilities
  • Complex-valued properties specified in the specific capability term override the corresponding properties specified in DefaultCapabilities using PATCH semantics recursively
  • Properties specified neither in the specific term nor in DefaultCapabilities have their default value
+[ConformanceLevel](Org.OData.Capabilities.V1.xml#L115)|[ConformanceLevelType](#ConformanceLevelType)|The conformance level achieved by this service +[SupportedFormats](Org.OData.Capabilities.V1.xml#L132)|\[MediaType\]|Media types of supported formats, including format parameters +[SupportedMetadataFormats](Org.OData.Capabilities.V1.xml#L137)|\[MediaType\]|Media types of supported formats for $metadata, including format parameters +[AcceptableEncodings](Org.OData.Capabilities.V1.xml#L142)|\[String\]|List of acceptable compression methods for ($batch) requests, e.g. gzip +[AsynchronousRequestsSupported](Org.OData.Capabilities.V1.xml#L148)|[Tag](Org.OData.Core.V1.md#Tag)|Service supports the asynchronous request preference +[BatchContinueOnErrorSupported](Org.OData.Capabilities.V1.xml#L152)|[Tag](Org.OData.Core.V1.md#Tag)|Service supports the continue on error preference. Supports $batch requests. Services that apply the BatchContinueOnErrorSupported term should also specify the ContinueOnErrorSupported property from the BatchSupport term. +[IsolationSupported](Org.OData.Capabilities.V1.xml#L156)|[IsolationLevel](#IsolationLevel)|Supported odata.isolation levels +[CrossJoinSupported](Org.OData.Capabilities.V1.xml#L165)|[Tag](Org.OData.Core.V1.md#Tag)|Supports cross joins for the entity sets in this container +[CallbackSupported](Org.OData.Capabilities.V1.xml#L169)|[CallbackType](#CallbackType)|Supports callbacks for the specified protocols +[ChangeTracking](Org.OData.Capabilities.V1.xml#L191)|[ChangeTrackingType](#ChangeTrackingType)|Change tracking capabilities of this service or entity set +[CountRestrictions](Org.OData.Capabilities.V1.xml#L212)|[CountRestrictionsType](#CountRestrictionsType)|Restrictions on /$count path suffix and $count=true system query option +[NavigationRestrictions](Org.OData.Capabilities.V1.xml#L230)|[NavigationRestrictionsType](#NavigationRestrictionsType)|Restrictions on navigating properties according to OData URL conventions
Restrictions specified on an entity set are valid whether the request is directly to the entity set or through a navigation property bound to that entity set. Services can specify a different set of restrictions specific to a path, in which case the more specific restrictions take precedence. +[IndexableByKey](Org.OData.Capabilities.V1.xml#L321)|[Tag](Org.OData.Core.V1.md#Tag)|Supports key values according to OData URL conventions +[TopSupported](Org.OData.Capabilities.V1.xml#L326)|[Tag](Org.OData.Core.V1.md#Tag)|Supports $top +[SkipSupported](Org.OData.Capabilities.V1.xml#L331)|[Tag](Org.OData.Core.V1.md#Tag)|Supports $skip +[ComputeSupported](Org.OData.Capabilities.V1.xml#L336)|[Tag](Org.OData.Core.V1.md#Tag)|Supports $compute +[SelectSupport](Org.OData.Capabilities.V1.xml#L341)|[SelectSupportType](#SelectSupportType)|Support for $select and nested query options within $select +[BatchSupported](Org.OData.Capabilities.V1.xml#L378)|[Tag](Org.OData.Core.V1.md#Tag)|Supports $batch requests. Services that apply the BatchSupported term should also apply the more comprehensive BatchSupport term. +[BatchSupport](Org.OData.Capabilities.V1.xml#L382)|[BatchSupportType](#BatchSupportType)|Batch Support for the service +[FilterFunctions](Org.OData.Capabilities.V1.xml#L428)|\[String\]|List of functions and operators supported in filter expressions
If not specified, null, or empty, all functions and operators may be attempted. +[FilterRestrictions](Org.OData.Capabilities.V1.xml#L434)|[FilterRestrictionsType](#FilterRestrictionsType)|Restrictions on filter expressions +[SortRestrictions](Org.OData.Capabilities.V1.xml#L506)|[SortRestrictionsType](#SortRestrictionsType)|Restrictions on orderby expressions +[ExpandRestrictions](Org.OData.Capabilities.V1.xml#L532)|[ExpandRestrictionsType](#ExpandRestrictionsType)|Restrictions on expand expressions +[SearchRestrictions](Org.OData.Capabilities.V1.xml#L562)|[SearchRestrictionsType](#SearchRestrictionsType)|Restrictions on search expressions +[KeyAsSegmentSupported](Org.OData.Capabilities.V1.xml#L600)|[Tag](Org.OData.Core.V1.md#Tag)|Supports [key-as-segment convention](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_KeyasSegmentConvention) for addressing entities within a collection +[QuerySegmentSupported](Org.OData.Capabilities.V1.xml#L604)|[Tag](Org.OData.Core.V1.md#Tag)|Supports [passing query options in the request body](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#sec_PassingQueryOptionsintheRequestBody) +[InsertRestrictions](Org.OData.Capabilities.V1.xml#L610)|[InsertRestrictionsType](#InsertRestrictionsType)|Restrictions on insert operations +[DeepInsertSupport](Org.OData.Capabilities.V1.xml#L689)|[DeepInsertSupportType?](#DeepInsertSupportType)|Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) +[UpdateRestrictions](Org.OData.Capabilities.V1.xml#L702)|[UpdateRestrictionsType](#UpdateRestrictionsType)|Restrictions on update operations +[DeepUpdateSupport](Org.OData.Capabilities.V1.xml#L788)|[DeepUpdateSupportType](#DeepUpdateSupportType)|Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) +[DeleteRestrictions](Org.OData.Capabilities.V1.xml#L801)|[DeleteRestrictionsType](#DeleteRestrictionsType)|Restrictions on delete operations +[CollectionPropertyRestrictions](Org.OData.Capabilities.V1.xml#L845)|\[[CollectionPropertyRestrictionsType](#CollectionPropertyRestrictionsType)\]|Describes restrictions on operations applied to collection-valued structural properties +[OperationRestrictions](Org.OData.Capabilities.V1.xml#L886)|[OperationRestrictionsType](#OperationRestrictionsType)|Restrictions for function or action operation +[AnnotationValuesInQuerySupported](Org.OData.Capabilities.V1.xml#L906)|[Tag](Org.OData.Core.V1.md#Tag)|Supports annotation values within system query options +[ModificationQueryOptions](Org.OData.Capabilities.V1.xml#L910)|[ModificationQueryOptionsType](#ModificationQueryOptionsType)|Support for query options with modification requests (insert, update, action invocation) +[ReadRestrictions](Org.OData.Capabilities.V1.xml#L934)|[ReadRestrictionsType](#ReadRestrictionsType)|Restrictions for retrieving a collection of entities, retrieving a singleton instance. +[CustomHeaders](Org.OData.Capabilities.V1.xml#L976)|\[[CustomParameter](#CustomParameter)\]|Custom headers that are supported/required for the annotated resource ([Example](Org.OData.Capabilities.V1.xml#L978)) +[CustomQueryOptions](Org.OData.Capabilities.V1.xml#L1002)|\[[CustomParameter](#CustomParameter)\]|Custom query options that are supported/required for the annotated resource ([Example](Org.OData.Capabilities.V1.xml#L1005))
If the entity container is annotated, the query option is supported/required by all resources in that container. +[MediaLocationUpdateSupported](Org.OData.Capabilities.V1.xml#L1054)|[Tag](Org.OData.Core.V1.md#Tag)|Stream property or media stream supports update of its media edit URL and/or media read URL +[DefaultCapabilities](Org.OData.Capabilities.V1.xml#L1059)|[DefaultCapabilitiesType](#DefaultCapabilitiesType)|Default capability settings for all collection-valued resources in the container

Annotating a specific capability term, which is included as property in DefaultCapabilitiesType, for a specific collection-valued resource overrides the default capability with the specified properties using PATCH semantics:

  • Primitive or collection-valued properties specified in the specific capability term replace the corresponding properties specified in DefaultCapabilities
  • Complex-valued properties specified in the specific capability term override the corresponding properties specified in DefaultCapabilities using PATCH semantics recursively
  • Properties specified neither in the specific term nor in DefaultCapabilities have their default value
-## [ConformanceLevelType](./Org.OData.Capabilities.V1.xml#L118:~:text= -## [IsolationLevel](./Org.OData.Capabilities.V1.xml#L159:~:text= -## [CallbackType](./Org.OData.Capabilities.V1.xml#L172:~:text= -## [CallbackProtocol](./Org.OData.Capabilities.V1.xml#L178:~:text= -## [ChangeTrackingBase](./Org.OData.Capabilities.V1.xml#L194:~:text= -## [ChangeTrackingType](./Org.OData.Capabilities.V1.xml#L199:~:text=If no properties are specified or FilterableProperties is omitted, clients cannot assume support for filtering on any properties in combination with change tracking. -[ExpandableProperties](./Org.OData.Capabilities.V1.xml#L204:~:text=If no properties are specified or ExpandableProperties is omitted, clients cannot assume support for expanding any properties in combination with change tracking. +[*Supported*](Org.OData.Capabilities.V1.xml#L195)|Boolean|odata.track-changes preference is supported +[FilterableProperties](Org.OData.Capabilities.V1.xml#L200)|\[PropertyPath\]|Change tracking supports filters on these properties
If no properties are specified or FilterableProperties is omitted, clients cannot assume support for filtering on any properties in combination with change tracking. +[ExpandableProperties](Org.OData.Capabilities.V1.xml#L204)|\[NavigationPropertyPath\]|Change tracking supports these properties expanded
If no properties are specified or ExpandableProperties is omitted, clients cannot assume support for expanding any properties in combination with change tracking. -## [CountRestrictionsBase](./Org.OData.Capabilities.V1.xml#L216:~:text= -## [CountRestrictionsType](./Org.OData.Capabilities.V1.xml#L221:~:text= -## [NavigationRestrictionsType](./Org.OData.Capabilities.V1.xml#L235:~:text= -## [NavigationPropertyRestriction](./Org.OData.Capabilities.V1.xml#L243:~:text=The target path of a [`NavigationRestrictions`](#NavigationRestrictions) annotation followed by this navigation property path addresses the resource to which the other properties of `NavigationPropertyRestriction` apply. Instance paths that occur in dynamic expressions are evaluated starting at the boundary between both paths, which must therefore be chosen accordingly. -[Navigability](./Org.OData.Capabilities.V1.xml#L259:~:text=If not specified, null, or empty, all functions and operators may be attempted. -[FilterRestrictions](./Org.OData.Capabilities.V1.xml#L266:~:text=The target path of a [`NavigationRestrictions`](#NavigationRestrictions) annotation followed by this navigation property path addresses the resource to which the other properties of `NavigationPropertyRestriction` apply. Instance paths that occur in dynamic expressions are evaluated starting at the boundary between both paths, which must therefore be chosen accordingly. +[Navigability](Org.OData.Capabilities.V1.xml#L259)|[NavigationType?](#NavigationType)|Supported navigability of this navigation property +[FilterFunctions](Org.OData.Capabilities.V1.xml#L262)|\[String\]|List of functions and operators supported in filter expressions
If not specified, null, or empty, all functions and operators may be attempted. +[FilterRestrictions](Org.OData.Capabilities.V1.xml#L266)|[FilterRestrictionsType?](#FilterRestrictionsType)|Restrictions on filter expressions +[SearchRestrictions](Org.OData.Capabilities.V1.xml#L269)|[SearchRestrictionsType?](#SearchRestrictionsType)|Restrictions on search expressions +[SortRestrictions](Org.OData.Capabilities.V1.xml#L272)|[SortRestrictionsType?](#SortRestrictionsType)|Restrictions on orderby expressions +[TopSupported](Org.OData.Capabilities.V1.xml#L275)|Boolean|Supports $top +[SkipSupported](Org.OData.Capabilities.V1.xml#L278)|Boolean|Supports $skip +[SelectSupport](Org.OData.Capabilities.V1.xml#L281)|[SelectSupportType?](#SelectSupportType)|Support for $select +[IndexableByKey](Org.OData.Capabilities.V1.xml#L284)|Boolean|Supports key values according to OData URL conventions +[InsertRestrictions](Org.OData.Capabilities.V1.xml#L287)|[InsertRestrictionsType?](#InsertRestrictionsType)|Restrictions on insert operations +[DeepInsertSupport](Org.OData.Capabilities.V1.xml#L290)|[DeepInsertSupportType?](#DeepInsertSupportType)|Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) +[UpdateRestrictions](Org.OData.Capabilities.V1.xml#L293)|[UpdateRestrictionsType?](#UpdateRestrictionsType)|Restrictions on update operations +[DeepUpdateSupport](Org.OData.Capabilities.V1.xml#L296)|[DeepUpdateSupportType?](#DeepUpdateSupportType)|Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource) +[DeleteRestrictions](Org.OData.Capabilities.V1.xml#L299)|[DeleteRestrictionsType?](#DeleteRestrictionsType)|Restrictions on delete operations +[OptimisticConcurrencyControl](Org.OData.Capabilities.V1.xml#L302)|Boolean|Data modification (including insert) along this navigation property requires the use of ETags +[ReadRestrictions](Org.OData.Capabilities.V1.xml#L305)|[ReadRestrictionsType?](#ReadRestrictionsType)|Restrictions for retrieving entities -## [NavigationType](./Org.OData.Capabilities.V1.xml#L309:~:text= -## [SelectSupportType](./Org.OData.Capabilities.V1.xml#L345:~:text= -## [BatchSupportType](./Org.OData.Capabilities.V1.xml#L385:~:text=Allowed values:
[multipart/mixed](./Org.OData.Capabilities.V1.xml#L415)
[Multipart Batch Format](http://docs.oasis-open.org/odata/odata/v4.01/cs01/part1-protocol/odata-v4.01-cs01-part1-protocol.html#sec_MultipartBatchFormat)
[application/json](./Org.OData.Capabilities.V1.xml#L419)
[JSON Batch Format](http://docs.oasis-open.org/odata/odata-json-format/v4.01/cs01/odata-json-format-v4.01-cs01.html#sec_BatchRequestsandResponses)
+[Supported](Org.OData.Capabilities.V1.xml#L392)|Boolean|Service supports requests to $batch +[ContinueOnErrorSupported](Org.OData.Capabilities.V1.xml#L395)|Boolean|Service supports the continue on error preference +[ReferencesInRequestBodiesSupported](Org.OData.Capabilities.V1.xml#L398)|Boolean|Service supports Content-ID referencing in request bodies +[ReferencesAcrossChangeSetsSupported](Org.OData.Capabilities.V1.xml#L401)|Boolean|Service supports Content-ID referencing across change sets +[EtagReferencesSupported](Org.OData.Capabilities.V1.xml#L404)|Boolean|Service supports referencing Etags from previous requests +[RequestDependencyConditionsSupported](Org.OData.Capabilities.V1.xml#L407)|Boolean|Service supports the `if` member in JSON batch requests +[SupportedFormats](Org.OData.Capabilities.V1.xml#L410)|\[MediaType\]|Media types of supported formats for $batch
Allowed values:
[multipart/mixed](Org.OData.Capabilities.V1.xml#L415)
[Multipart Batch Format](http://docs.oasis-open.org/odata/odata/v4.01/cs01/part1-protocol/odata-v4.01-cs01-part1-protocol.html#sec_MultipartBatchFormat)
[application/json](Org.OData.Capabilities.V1.xml#L419)
[JSON Batch Format](http://docs.oasis-open.org/odata/odata-json-format/v4.01/cs01/odata-json-format-v4.01-cs01.html#sec_BatchRequestsandResponses)
**Applicable Annotation Terms:** @@ -251,7 +251,7 @@ Property|Type|Description - [LongDescription](Org.OData.Core.V1.md#LongDescription) -## [FilterRestrictionsBase](./Org.OData.Capabilities.V1.xml#L438:~:text= -## [FilterRestrictionsType](./Org.OData.Capabilities.V1.xml#L454:~:text= -## [FilterExpressionRestrictionType](./Org.OData.Capabilities.V1.xml#L465:~:text= -## [FilterExpressionType](./Org.OData.Capabilities.V1.xml#L473:~:text=The filter expression for this property consists of one or more interval expressions combined by `or`. A single interval expression is either a single comparison of the property and a literal value with `eq`, `le`, `lt`, `ge`, or `gt`, or pair of boundaries combined by `and` and enclosed in parentheses. The lower boundary is either `ge` or `gt`, the upper boundary either `le` or `lt`. -[SearchExpression](./Org.OData.Capabilities.V1.xml#L493:~:text=The filter expression for this property consists of one or more interval expressions or string comparison functions combined by `or`. See MultiRange for a definition of an interval expression. See SearchExpression for the allowed string comparison functions. +[SingleValue](Org.OData.Capabilities.V1.xml#L476)|Property can be used in a single `eq` clause +[MultiValue](Org.OData.Capabilities.V1.xml#L480)|Property can be used in multiple `eq` and `in` clauses, combined by `or` (which is logically equivalent to a single `in` clause) +[SingleRange](Org.OData.Capabilities.V1.xml#L484)|Property can be used in at most one `ge` and/or one `le` clause, separated by `and` +[MultiRange](Org.OData.Capabilities.V1.xml#L488)|Property can be compared to a union of one or more closed, half-open, or open intervals
The filter expression for this property consists of one or more interval expressions combined by `or`. A single interval expression is either a single comparison of the property and a literal value with `eq`, `le`, `lt`, `ge`, or `gt`, or pair of boundaries combined by `and` and enclosed in parentheses. The lower boundary is either `ge` or `gt`, the upper boundary either `le` or `lt`. +[SearchExpression](Org.OData.Capabilities.V1.xml#L493)|String property can be used as first operand in `startswith`, `endswith`, and `contains` clauses +[MultiRangeOrSearchExpression](Org.OData.Capabilities.V1.xml#L497)|Property can be compared to a union of zero or more closed, half-open, or open intervals plus zero or more simple string patterns
The filter expression for this property consists of one or more interval expressions or string comparison functions combined by `or`. See MultiRange for a definition of an interval expression. See SearchExpression for the allowed string comparison functions. -## [SortRestrictionsBase](./Org.OData.Capabilities.V1.xml#L510:~:text= -## [SortRestrictionsType](./Org.OData.Capabilities.V1.xml#L520:~:text= -## [ExpandRestrictionsBase](./Org.OData.Capabilities.V1.xml#L536:~:text= -## [ExpandRestrictionsType](./Org.OData.Capabilities.V1.xml#L552:~:text= -## [SearchRestrictionsType](./Org.OData.Capabilities.V1.xml#L566:~:text= -## [SearchExpressions](./Org.OData.Capabilities.V1.xml#L579:~:text= -## [InsertRestrictionsBase](./Org.OData.Capabilities.V1.xml#L614:~:text= -## [InsertRestrictionsType](./Org.OData.Capabilities.V1.xml#L645:~:text= -## [PermissionType](./Org.OData.Capabilities.V1.xml#L660:~:text= -## [ScopeType](./Org.OData.Capabilities.V1.xml#L669:~:text=Possible string value identifiers when specifying properties are `*`, _PropertyName_, `-`_PropertyName_.
`*` denotes all properties are accessible.
`-`_PropertyName_ excludes that specific property.
_PropertyName_ explicitly provides access to the specific property.
The absence of `RestrictedProperties` denotes all properties are accessible using that scope. +[Scope](Org.OData.Capabilities.V1.xml#L670)|String|Name of the scope. +[RestrictedProperties](Org.OData.Capabilities.V1.xml#L673)|String?|Comma-separated string value of all properties that will be included or excluded when using the scope.
Possible string value identifiers when specifying properties are `*`, _PropertyName_, `-`_PropertyName_.
`*` denotes all properties are accessible.
`-`_PropertyName_ excludes that specific property.
_PropertyName_ explicitly provides access to the specific property.
The absence of `RestrictedProperties` denotes all properties are accessible using that scope. -## [DeepInsertSupportType](./Org.OData.Capabilities.V1.xml#L693:~:text= -## [UpdateRestrictionsBase](./Org.OData.Capabilities.V1.xml#L706:~:text= -## [UpdateRestrictionsType](./Org.OData.Capabilities.V1.xml#L752:~:text= -## [HttpMethod](./Org.OData.Capabilities.V1.xml#L764:~:text= -## [DeepUpdateSupportType](./Org.OData.Capabilities.V1.xml#L792:~:text= -## [DeleteRestrictionsBase](./Org.OData.Capabilities.V1.xml#L805:~:text= -## [DeleteRestrictionsType](./Org.OData.Capabilities.V1.xml#L839:~:text= -## [CollectionPropertyRestrictionsType](./Org.OData.Capabilities.V1.xml#L848:~:text=If not specified, null, or empty, all functions and operators may be attempted. -[FilterRestrictions](./Org.OData.Capabilities.V1.xml#L856:~:text=If additionally annotated with [Core.PositionalInsert](Org.OData.Core.V1.md#PositionalInsert), members can be inserted at a specific position -[Updatable](./Org.OData.Capabilities.V1.xml#L878:~:text=If not specified, null, or empty, all functions and operators may be attempted. +[FilterRestrictions](Org.OData.Capabilities.V1.xml#L856)|[FilterRestrictionsType?](#FilterRestrictionsType)|Restrictions on filter expressions +[SearchRestrictions](Org.OData.Capabilities.V1.xml#L859)|[SearchRestrictionsType?](#SearchRestrictionsType)|Restrictions on search expressions +[SortRestrictions](Org.OData.Capabilities.V1.xml#L862)|[SortRestrictionsType?](#SortRestrictionsType)|Restrictions on orderby expressions +[TopSupported](Org.OData.Capabilities.V1.xml#L865)|Boolean|Supports $top +[SkipSupported](Org.OData.Capabilities.V1.xml#L868)|Boolean|Supports $skip +[SelectSupport](Org.OData.Capabilities.V1.xml#L871)|[SelectSupportType?](#SelectSupportType)|Support for $select +[Insertable](Org.OData.Capabilities.V1.xml#L874)|Boolean|Members can be inserted into this collection
If additionally annotated with [Core.PositionalInsert](Org.OData.Core.V1.md#PositionalInsert), members can be inserted at a specific position +[Updatable](Org.OData.Capabilities.V1.xml#L878)|Boolean|Members of this ordered collection can be updated by ordinal +[Deletable](Org.OData.Capabilities.V1.xml#L881)|Boolean|Members of this ordered collection can be deleted by ordinal -## [OperationRestrictionsType](./Org.OData.Capabilities.V1.xml#L889:~:text= -## [ModificationQueryOptionsType](./Org.OData.Capabilities.V1.xml#L913:~:text= -## [*ReadRestrictionsBase*](./Org.OData.Capabilities.V1.xml#L938:~:text= -## [ReadByKeyRestrictionsType](./Org.OData.Capabilities.V1.xml#L963:~:text= -## [ReadRestrictionsType](./Org.OData.Capabilities.V1.xml#L966:~:text=Only valid when applied to a collection. If a property of `ReadByKeyRestrictions` is not specified, the corresponding property value of `ReadRestrictions` applies. +[*Readable*](Org.OData.Capabilities.V1.xml#L939)|Boolean|Entities can be retrieved +[*Permissions*](Org.OData.Capabilities.V1.xml#L942)|\[[PermissionType?](#PermissionType)\]|Required permissions. One of the specified sets of scopes is required to read. +[*CustomHeaders*](Org.OData.Capabilities.V1.xml#L945)|\[[CustomParameter](#CustomParameter)\]|Supported or required custom headers +[*CustomQueryOptions*](Org.OData.Capabilities.V1.xml#L948)|\[[CustomParameter](#CustomParameter)\]|Supported or required custom query options +[*Description*](Org.OData.Capabilities.V1.xml#L951)|String?|A brief description of the request +[*LongDescription*](Org.OData.Capabilities.V1.xml#L955)|String?|A long description of the request +[*ErrorResponses*](Org.OData.Capabilities.V1.xml#L959)|\[[HttpResponse](#HttpResponse)\]|Possible error responses returned by the request. +[TypecastSegmentSupported](Org.OData.Capabilities.V1.xml#L967)|Boolean|Entities of a specific derived type can be read by specifying a type-cast segment +[ReadByKeyRestrictions](Org.OData.Capabilities.V1.xml#L970)|[ReadByKeyRestrictionsType?](#ReadByKeyRestrictionsType)|Restrictions for retrieving an entity by key
Only valid when applied to a collection. If a property of `ReadByKeyRestrictions` is not specified, the corresponding property value of `ReadRestrictions` applies. -## [CustomParameter](./Org.OData.Capabilities.V1.xml#L1033:~:text= -## [DefaultCapabilitiesType](./Org.OData.Capabilities.V1.xml#L1068:~:text= -## [HttpResponse](./Org.OData.Capabilities.V1.xml#L1119:~:text=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. -[SchemaVersion](./Org.OData.Core.V1.xml#L73:~:text=Service-defined value representing the version of the schema. Services MAY use semantic versioning, but clients MUST NOT assume this is the case. -[Revisions](./Org.OData.Core.V1.xml#L77:~:text=List of revisions of a model element -[Description](./Org.OData.Core.V1.xml#L105:~:text=A brief description of a model element -[LongDescription](./Org.OData.Core.V1.xml#L110:~:text=A long description of a model element -[Links](./Org.OData.Core.V1.xml#L115:~:text=Link to related information -[Example](./Org.OData.Core.V1.xml#L129:~:text=Example for an instance of the annotated model element ([Example](./Org.OData.Core.V1.xml#L131)) -[Messages](./Org.OData.Core.V1.xml#L198:~:text=Instance annotation for warning and info messages -[ValueException](./Org.OData.Core.V1.xml#L242:~:text=The annotated value is problematic -[ResourceException](./Org.OData.Core.V1.xml#L256:~:text=The annotated instance within a success payload is problematic -[DataModificationException](./Org.OData.Core.V1.xml#L266:~:text=A modification operation failed on the annotated instance or collection within a success payload -[IsLanguageDependent](./Org.OData.Core.V1.xml#L306:~:text=Properties and terms annotated with this term are language-dependent -[RequiresType](./Org.OData.Core.V1.xml#L317:~:text=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 -[AppliesViaContainer](./Org.OData.Core.V1.xml#L321:~:text=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
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. -[ResourcePath](./Org.OData.Core.V1.xml#L331:~:text=Resource path for entity container child, can be relative to xml:base and the request URL -[DereferenceableIDs](./Org.OData.Core.V1.xml#L336:~:text=Entity-ids are URLs that locate the identified entity -[ConventionalIDs](./Org.OData.Core.V1.xml#L340:~:text=Entity-ids follow OData URL conventions -[Permissions](./Org.OData.Core.V1.xml#L346:~:text=Permissions for accessing a resource -[ContentID](./Org.OData.Core.V1.xml#L369:~:text=A unique identifier for nested entities within a request. -[DefaultNamespace](./Org.OData.Core.V1.xml#L375:~:text=Functions, actions and types in this namespace can be referenced in URLs with or without namespace- or alias- qualification.
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. -[Immutable](./Org.OData.Core.V1.xml#L380:~:text=A value for this non-key property can be provided by the client on insert and remains unchanged on update -[Computed](./Org.OData.Core.V1.xml#L384:~:text=A value for this property is generated on both insert and update -[ComputedDefaultValue](./Org.OData.Core.V1.xml#L388:~:text=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 -[IsURL](./Org.OData.Core.V1.xml#L392:~:text=Properties and terms annotated with this term MUST contain a valid URL -[AcceptableMediaTypes](./Org.OData.Core.V1.xml#L397:~:text=Lists the MIME types acceptable for the annotated entity type marked with HasStream="true" or the annotated binary, stream, or string property or term
The annotation of a TypeDefinition propagates to the model elements having this type -[MediaType](./Org.OData.Core.V1.xml#L403:~:text=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
The annotation of a TypeDefinition propagates to the model elements having this type -[IsMediaType](./Org.OData.Core.V1.xml#L409:~:text=Properties and terms annotated with this term MUST contain a valid MIME type -[ContentDisposition](./Org.OData.Core.V1.xml#L414:~:text=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 -[OptimisticConcurrency](./Org.OData.Core.V1.xml#L427:~:text=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 -[AdditionalProperties](./Org.OData.Core.V1.xml#L431:~:text=Instances of this type may contain properties in addition to those declared in $metadata
If specified as false clients can assume that instances will not contain dynamic properties, irrespective of the value of the OpenType attribute. -[AutoExpand](./Org.OData.Core.V1.xml#L436:~:text=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 -[AutoExpandReferences](./Org.OData.Core.V1.xml#L440:~:text=The service will automatically expand this navigation property as entity references even if not requested with $expand=.../$ref -[MayImplement](./Org.OData.Core.V1.xml#L444:~:text=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. -[Ordered](./Org.OData.Core.V1.xml#L471:~:text=Collection has a stable order. Ordered collections of primitive or complex types can be indexed by ordinal. -[PositionalInsert](./Org.OData.Core.V1.xml#L475:~:text=Items can be inserted at a given ordinal index. -[AlternateKeys](./Org.OData.Core.V1.xml#L479:~:text=Communicates available alternate keys -[OptionalParameter](./Org.OData.Core.V1.xml#L507:~:text=Supplying a value for the action or function parameter is optional.
All parameters marked as optional must come after any parameters not marked as optional. The binding parameter must not be marked as optional. -[OperationAvailable](./Org.OData.Core.V1.xml#L518:~:text=Action or function is available
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. -[RequiresExplicitBinding](./Org.OData.Core.V1.xml#L523:~:text=This bound action or function is only available on model elements annotated with the ExplicitOperationBindings term. -[ExplicitOperationBindings](./Org.OData.Core.V1.xml#L527:~:text=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. -[SymbolicName](./Org.OData.Core.V1.xml#L536:~:text=A symbolic name for a model element -[GeometryFeature](./Org.OData.Core.V1.xml#L545:~:text=A [Feature Object](https://datatracker.ietf.org/doc/html/rfc7946#section-3.2) represents a spatially bounded thing -[AnyStructure](./Org.OData.Core.V1.xml#L561:~:text=Instances of a type are annotated with this tag if they have no common structure in a given response payload
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. +[ODataVersions](Org.OData.Core.V1.xml#L69)|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. +[SchemaVersion](Org.OData.Core.V1.xml#L73)|String|Service-defined value representing the version of the schema. Services MAY use semantic versioning, but clients MUST NOT assume this is the case. +[Revisions](Org.OData.Core.V1.xml#L77)|\[[RevisionType](#RevisionType)\]|List of revisions of a model element +[Description](Org.OData.Core.V1.xml#L105)|String?|A brief description of a model element +[LongDescription](Org.OData.Core.V1.xml#L110)|String?|A long description of a model element +[Links](Org.OData.Core.V1.xml#L115)|\[[Link](#Link)\]|Link to related information +[Example](Org.OData.Core.V1.xml#L129)|[ExampleValue](#ExampleValue)|Example for an instance of the annotated model element ([Example](Org.OData.Core.V1.xml#L131)) +[Messages](Org.OData.Core.V1.xml#L198)|\[[MessageType](#MessageType)\]|Instance annotation for warning and info messages +[ValueException](Org.OData.Core.V1.xml#L242)|[ValueExceptionType](#ValueExceptionType)|The annotated value is problematic +[ResourceException](Org.OData.Core.V1.xml#L256)|[ResourceExceptionType](#ResourceExceptionType)|The annotated instance within a success payload is problematic +[DataModificationException](Org.OData.Core.V1.xml#L266)|[DataModificationExceptionType](#DataModificationExceptionType)|A modification operation failed on the annotated instance or collection within a success payload +[IsLanguageDependent](Org.OData.Core.V1.xml#L306)|[Tag](#Tag)|Properties and terms annotated with this term are language-dependent +[RequiresType](Org.OData.Core.V1.xml#L317)|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 +[AppliesViaContainer](Org.OData.Core.V1.xml#L321)|[Tag](#Tag)|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
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. +[ResourcePath](Org.OData.Core.V1.xml#L331)|URL|Resource path for entity container child, can be relative to xml:base and the request URL +[DereferenceableIDs](Org.OData.Core.V1.xml#L336)|[Tag](#Tag)|Entity-ids are URLs that locate the identified entity +[ConventionalIDs](Org.OData.Core.V1.xml#L340)|[Tag](#Tag)|Entity-ids follow OData URL conventions +[Permissions](Org.OData.Core.V1.xml#L346)|[Permission](#Permission)|Permissions for accessing a resource +[ContentID](Org.OData.Core.V1.xml#L369)|String|A unique identifier for nested entities within a request. +[DefaultNamespace](Org.OData.Core.V1.xml#L375)|[Tag](#Tag)|Functions, actions and types in this namespace can be referenced in URLs with or without namespace- or alias- qualification.
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. +[Immutable](Org.OData.Core.V1.xml#L380)|[Tag](#Tag)|A value for this non-key property can be provided by the client on insert and remains unchanged on update +[Computed](Org.OData.Core.V1.xml#L384)|[Tag](#Tag)|A value for this property is generated on both insert and update +[ComputedDefaultValue](Org.OData.Core.V1.xml#L388)|[Tag](#Tag)|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 +[IsURL](Org.OData.Core.V1.xml#L392)|[Tag](#Tag)|Properties and terms annotated with this term MUST contain a valid URL +[AcceptableMediaTypes](Org.OData.Core.V1.xml#L397)|\[MediaType\]|Lists the MIME types acceptable for the annotated entity type marked with HasStream="true" or the annotated binary, stream, or string property or term
The annotation of a TypeDefinition propagates to the model elements having this type +[MediaType](Org.OData.Core.V1.xml#L403)|MediaType?|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
The annotation of a TypeDefinition propagates to the model elements having this type +[IsMediaType](Org.OData.Core.V1.xml#L409)|[Tag](#Tag)|Properties and terms annotated with this term MUST contain a valid MIME type +[ContentDisposition](Org.OData.Core.V1.xml#L414)|[ContentDispositionType](#ContentDispositionType)|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 +[OptimisticConcurrency](Org.OData.Core.V1.xml#L427)|\[PropertyPath\]|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 +[AdditionalProperties](Org.OData.Core.V1.xml#L431)|[Tag](#Tag)|Instances of this type may contain properties in addition to those declared in $metadata
If specified as false clients can assume that instances will not contain dynamic properties, irrespective of the value of the OpenType attribute. +[AutoExpand](Org.OData.Core.V1.xml#L436)|[Tag](#Tag)|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 +[AutoExpandReferences](Org.OData.Core.V1.xml#L440)|[Tag](#Tag)|The service will automatically expand this navigation property as entity references even if not requested with $expand=.../$ref +[MayImplement](Org.OData.Core.V1.xml#L444)|\[[QualifiedTypeName](#QualifiedTypeName)\]|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. +[Ordered](Org.OData.Core.V1.xml#L471)|[Tag](#Tag)|Collection has a stable order. Ordered collections of primitive or complex types can be indexed by ordinal. +[PositionalInsert](Org.OData.Core.V1.xml#L475)|[Tag](#Tag)|Items can be inserted at a given ordinal index. +[AlternateKeys](Org.OData.Core.V1.xml#L479)|\[[AlternateKey](#AlternateKey)\]|Communicates available alternate keys +[OptionalParameter](Org.OData.Core.V1.xml#L507)|[OptionalParameterType](#OptionalParameterType)|Supplying a value for the action or function parameter is optional.
All parameters marked as optional must come after any parameters not marked as optional. The binding parameter must not be marked as optional. +[OperationAvailable](Org.OData.Core.V1.xml#L518)|Boolean?|Action or function is available
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. +[RequiresExplicitBinding](Org.OData.Core.V1.xml#L523)|[Tag?](#Tag)|This bound action or function is only available on model elements annotated with the ExplicitOperationBindings term. +[ExplicitOperationBindings](Org.OData.Core.V1.xml#L527)|\[[QualifiedBoundOperationName](#QualifiedBoundOperationName)\]|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. +[SymbolicName](Org.OData.Core.V1.xml#L536)|[SimpleIdentifier](#SimpleIdentifier)|A symbolic name for a model element +[GeometryFeature](Org.OData.Core.V1.xml#L545)|[GeometryFeatureType?](#GeometryFeatureType)|A [Feature Object](https://datatracker.ietf.org/doc/html/rfc7946#section-3.2) represents a spatially bounded thing +[AnyStructure](Org.OData.Core.V1.xml#L561)|[Tag](#Tag)|Instances of a type are annotated with this tag if they have no common structure in a given response payload
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. -## [RevisionType](./Org.OData.Core.V1.xml#L80:~:text= -## [RevisionKind](./Org.OData.Core.V1.xml#L91:~:text= -## [Link](./Org.OData.Core.V1.xml#L118:~:text= -## [ExampleValue](./Org.OData.Core.V1.xml#L169:~:text= -## [PrimitiveExampleValue](./Org.OData.Core.V1.xml#L174:~:text= -## [ComplexExampleValue](./Org.OData.Core.V1.xml#L179:~:text= -## [EntityExampleValue](./Org.OData.Core.V1.xml#L184:~:text= -## [ExternalExampleValue](./Org.OData.Core.V1.xml#L189:~:text= -## [MessageType](./Org.OData.Core.V1.xml#L201:~:text= -## [MessageSeverity](./Org.OData.Core.V1.xml#L219:~:text= -## [*ExceptionType*](./Org.OData.Core.V1.xml#L245:~:text= -## [ValueExceptionType](./Org.OData.Core.V1.xml#L250:~:text= -## [ResourceExceptionType](./Org.OData.Core.V1.xml#L259:~:text= -## [DataModificationExceptionType](./Org.OData.Core.V1.xml#L269:~:text= -## [DataModificationOperationKind](./Org.OData.Core.V1.xml#L279:~:text= -## [Tag](./Org.OData.Core.V1.xml#L311:~:text= -## [Permission](./Org.OData.Core.V1.xml#L349:~:text= -## [ContentDispositionType](./Org.OData.Core.V1.xml#L418:~:text= -## [QualifiedTermName](./Org.OData.Core.V1.xml#L448:~:text= -## [QualifiedTypeName](./Org.OData.Core.V1.xml#L452:~:text= -## [QualifiedActionName](./Org.OData.Core.V1.xml#L456:~:text= -## [QualifiedBoundOperationName](./Org.OData.Core.V1.xml#L460:~:text= -## [AlternateKey](./Org.OData.Core.V1.xml#L482:~:text= -## [PropertyRef](./Org.OData.Core.V1.xml#L487:~:text= -## [Dictionary](./Org.OData.Core.V1.xml#L496:~:text= -## [OptionalParameterType](./Org.OData.Core.V1.xml#L511:~:text=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. +[DefaultValue](Org.OData.Core.V1.xml#L512)|String?|Default value for an optional parameter of primitive or enumeration type, using the same rules as the `cast` function in URLs.
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. -## [LocalDateTime](./Org.OData.Core.V1.xml#L531:~:text= -## [SimpleIdentifier](./Org.OData.Core.V1.xml#L540:~:text= -## [GeometryFeatureType](./Org.OData.Core.V1.xml#L548:~:text=The JSON Schema for JSON values of the annotated media entity type, property, parameter, return type, term, or type definition
The schema can be a schema reference, i.e. `{"$ref":"url/of/schemafile#/path/to/schema/within/schemafile"}` +[Schema](Org.OData.JSON.V1.xml#L67)|[JSON](#JSON)|The JSON Schema for JSON values of the annotated media entity type, property, parameter, return type, term, or type definition
The schema can be a schema reference, i.e. `{"$ref":"url/of/schemafile#/path/to/schema/within/schemafile"}` -## [JSON](./Org.OData.JSON.V1.xml#L75:~:text=The currency for this monetary amount as an ISO 4217 currency code -[Scale](./Org.OData.Measures.V1.xml#L74:~:text=The number of significant decimal places in the scale part (less than or equal to the number declared in the Scale facet) -[Unit](./Org.OData.Measures.V1.xml#L79:~:text=The unit of measure for this measured quantity, e.g. cm for centimeters or % for percentages -[UNECEUnit](./Org.OData.Measures.V1.xml#L83:~:text=The unit of measure for this measured quantity, according to the [UN/CEFACT Recommendation 20](http://tfig.unece.org/contents/recommendation-20.htm) -[DurationGranularity](./Org.OData.Measures.V1.xml#L87:~:text=The minimum granularity of duration values.
Absence of this annotation means a granularity of seconds with sub-seconds according to the Precision facet. +[ISOCurrency](Org.OData.Measures.V1.xml#L70)|String|The currency for this monetary amount as an ISO 4217 currency code +[Scale](Org.OData.Measures.V1.xml#L74)|Byte|The number of significant decimal places in the scale part (less than or equal to the number declared in the Scale facet) +[Unit](Org.OData.Measures.V1.xml#L79)|String|The unit of measure for this measured quantity, e.g. cm for centimeters or % for percentages +[UNECEUnit](Org.OData.Measures.V1.xml#L83)|String|The unit of measure for this measured quantity, according to the [UN/CEFACT Recommendation 20](http://tfig.unece.org/contents/recommendation-20.htm) +[DurationGranularity](Org.OData.Measures.V1.xml#L87)|[DurationGranularityType](#DurationGranularityType)|The minimum granularity of duration values.
Absence of this annotation means a granularity of seconds with sub-seconds according to the Precision facet. -## [DurationGranularityType](./Org.OData.Measures.V1.xml#L92:~:text=Repeatable requests are supported for the annotated service, entity set, or action
Annotations on entity set or action import level override an annotation on entity container level, and an annotation on action level override an annotation on action import level. -[DeleteWithClientIDSupported](./Org.OData.Repeatability.V1.xml#L74:~:text=Deletion of remembered requests by client ID is supported
Clients that specify a `RepeatabilityClientID` header can delete all remembered requests for that client ID by sending a
`DELETE $RepeatableRequestsWithClientID/{Repeatability-Client-ID}`
request to the service root. -[DeleteWithRequestIDSupported](./Org.OData.Repeatability.V1.xml#L85:~:text=Deletion of remembered requests by request ID is supported
Clients can delete a single remembered request by sending a
`DELETE $RepeatableRequestWithRequestID/{Repeatability-Request-ID}`
request to the service root. +[Supported](Org.OData.Repeatability.V1.xml#L69)|[Tag](Org.OData.Core.V1.md#Tag)|Repeatable requests are supported for the annotated service, entity set, or action
Annotations on entity set or action import level override an annotation on entity container level, and an annotation on action level override an annotation on action import level. +[DeleteWithClientIDSupported](Org.OData.Repeatability.V1.xml#L74)|[Tag](Org.OData.Core.V1.md#Tag)|Deletion of remembered requests by client ID is supported
Clients that specify a `RepeatabilityClientID` header can delete all remembered requests for that client ID by sending a
`DELETE $RepeatableRequestsWithClientID/{Repeatability-Client-ID}`
request to the service root. +[DeleteWithRequestIDSupported](Org.OData.Repeatability.V1.xml#L85)|[Tag](Org.OData.Core.V1.md#Tag)|Deletion of remembered requests by request ID is supported
Clients can delete a single remembered request by sending a
`DELETE $RepeatableRequestWithRequestID/{Repeatability-Request-ID}`
request to the service root. diff --git a/vocabularies/Org.OData.Temporal.V1.md b/vocabularies/Org.OData.Temporal.V1.md index 4e5602a0..82468378 100644 --- a/vocabularies/Org.OData.Temporal.V1.md +++ b/vocabularies/Org.OData.Temporal.V1.md @@ -8,13 +8,13 @@ Terms for describing time-dependent data Term|Type|Description :---|:---|:---------- -[ApplicationTimeSupport](./Org.OData.Temporal.V1.xml#L68:~:text=This collection supports temporal requests +[ApplicationTimeSupport](Org.OData.Temporal.V1.xml#L68)|[ApplicationTimeSupportType](#ApplicationTimeSupportType)|This collection supports temporal requests ## Actions -### [Update](./Org.OData.Temporal.V1.xml#L172:~:text=The delta time slices need not contain all properties, but at least the boundary values of the period to change. An absent object key property matches any key property value. New time slices are processed in the order of the collection, which especially matters if some of the specified change periods overlap. -[→](./Org.OData.Temporal.V1.xml#L191:~:text=The delta time slices need not contain all properties, but at least the boundary values of the period to change. An absent object key property matches any key property value. New time slices are processed in the order of the collection, which especially matters if some of the specified change periods overlap. +[→](Org.OData.Temporal.V1.xml#L191)|\[[TimesliceWithPeriod](#TimesliceWithPeriod)\]|Modified time slices -### [Upsert](./Org.OData.Temporal.V1.xml#L196:~:text=The delta time slices must contain all properties that are needed for insertion. New time slices are processed in the order of the collection, which especially matters if some of the specified change periods overlap. -[→](./Org.OData.Temporal.V1.xml#L208:~:text=The delta time slices must contain all properties that are needed for insertion. New time slices are processed in the order of the collection, which especially matters if some of the specified change periods overlap. +[→](Org.OData.Temporal.V1.xml#L208)|\[[TimesliceWithPeriod](#TimesliceWithPeriod)\]|Modified time slices -### [Delete](./Org.OData.Temporal.V1.xml#L213:~:text=The delta time slices contain only the boundary values of the period to delete and (parts of) the object key. An absent object key property matches any key property value. -[→](./Org.OData.Temporal.V1.xml#L231:~:text=The delta time slices contain only the boundary values of the period to delete and (parts of) the object key. An absent object key property matches any key property value. +[→](Org.OData.Temporal.V1.xml#L231)|\[[TimesliceWithPeriod](#TimesliceWithPeriod)\]|Deleted (sub-periods of) time slices -## [ApplicationTimeSupportType](./Org.OData.Temporal.V1.xml#L75:~:text= -## [*UnitOfTime*](./Org.OData.Temporal.V1.xml#L87:~:text= -## [UnitOfTimeDateTimeOffset](./Org.OData.Temporal.V1.xml#L91:~:text= -## [UnitOfTimeDate](./Org.OData.Temporal.V1.xml#L98:~:text= -## [*Timeline*](./Org.OData.Temporal.V1.xml#L107:~:text= -## [TimelineSnapshot](./Org.OData.Temporal.V1.xml#L111:~:text= -## [TimelineVisible](./Org.OData.Temporal.V1.xml#L121:~:text=If an upper boundary property does not specify a default value, a default value of `max` is assumed. -[ObjectKey](./Org.OData.Temporal.V1.xml#L137:~:text=A temporal object is a set of facts whose changes over application time are tracked by the service. The entities in the annotated collection belong to potentially multiple temporal objects, and each temporal object is uniquely identified by the values of the specified object key properties. Object key properties follow the same rules as entity key properties. If no object key is specified, only a single temporal object belongs to the annotated collection. +[PeriodStart](Org.OData.Temporal.V1.xml#L128)|PropertyPath|Property containing lower boundary of a period +[PeriodEnd](Org.OData.Temporal.V1.xml#L131)|PropertyPath|Property containing upper boundary of a period
If an upper boundary property does not specify a default value, a default value of `max` is assumed. +[ObjectKey](Org.OData.Temporal.V1.xml#L137)|\[PropertyPath\]|The set of primitive properties that identify a temporal object
A temporal object is a set of facts whose changes over application time are tracked by the service. The entities in the annotated collection belong to potentially multiple temporal objects, and each temporal object is uniquely identified by the values of the specified object key properties. Object key properties follow the same rules as entity key properties. If no object key is specified, only a single temporal object belongs to the annotated collection. -## [TimesliceWithPeriod](./Org.OData.Temporal.V1.xml#L143:~:text=When it appears in the return type of an action in this vocabulary, the time slice has the same entity set as the binding parameter value. +[PeriodStart](Org.OData.Temporal.V1.xml#L155)|PrimitiveType?|Lower boundary of the time slice +[PeriodEnd](Org.OData.Temporal.V1.xml#L158)|PrimitiveType?|Upper boundary of the time slice +[Timeslice](Org.OData.Temporal.V1.xml#L161)|EntityType|A time slice with the same entity type as the binding parameter of the action
When it appears in the return type of an action in this vocabulary, the time slice has the same entity set as the binding parameter value. diff --git a/vocabularies/Org.OData.Validation.V1.md b/vocabularies/Org.OData.Validation.V1.md index 94e6e70a..7b330ff2 100644 --- a/vocabularies/Org.OData.Validation.V1.md +++ b/vocabularies/Org.OData.Validation.V1.md @@ -8,53 +8,53 @@ Terms describing validation rules Term|Type|Description :---|:---|:---------- -[Pattern](./Org.OData.Validation.V1.xml#L67:~:text=The pattern that a string property, parameter, or term must match. This SHOULD be a valid regular expression, according to the ECMA 262 regular expression dialect. -[Minimum](./Org.OData.Validation.V1.xml#L72:~:text=Minimum value that a property, parameter, or term can have.
Can be annotated with:
  • [Exclusive](#Exclusive)
-[Maximum](./Org.OData.Validation.V1.xml#L81:~:text=Maximum value that a property, parameter, or term can have.
Can be annotated with:
  • [Exclusive](#Exclusive)
-[Exclusive](./Org.OData.Validation.V1.xml#L90:~:text=Tags a Minimum or Maximum as exclusive, i.e. an open interval boundary. -[AllowedValues](./Org.OData.Validation.V1.xml#L94:~:text=A collection of valid values for the annotated property, parameter, or type definition -[MultipleOf](./Org.OData.Validation.V1.xml#L108:~:text=The value of the annotated property, parameter, or term must be an integer multiple of this positive value. For temporal types, the value is measured in seconds. -[Constraint](./Org.OData.Validation.V1.xml#L112:~:text=Condition that the annotation target has to fulfill -[ItemsOf](./Org.OData.Validation.V1.xml#L125:~:text=A list of constraints describing that entities related via one navigation property MUST also be related via another, collection-valued navigation property. The same `path` value MUST NOT occur more than once.
Example: entity type `Customer` has navigation properties `AllOrders`, `OpenOrders`, and `ClosedOrders`. The term allows to express that items of `OpenOrders` and `ClosedOrders` are also items of the `AllOrders` navigation property, even though they are defined in an `Orders` entity set. -[OpenPropertyTypeConstraint](./Org.OData.Validation.V1.xml#L143:~:text=Dynamic properties added to the annotated open structured type are restricted to the listed types. -[DerivedTypeConstraint](./Org.OData.Validation.V1.xml#L147:~:text=Values are restricted to types that are both identical to or derived from the declared type and a type listed in this collection.
This allows restricting values to certain sub-trees of an inheritance hierarchy, including hierarchies starting at the [Built-In Abstract Types](https://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.html#sec_BuiltInAbstractTypes). Types listed in this collection are ignored if they are not derived from the declared type of the annotated model element or would not be allowed as declared type of the annotated model element.
When applied to a collection-valued element, this annotation specifies the types allowed for members of the collection without mentioning the `Collection()` wrapper. The SingleOrCollectionType may only include the `Collection()` wrapper if the annotation is applied to an element with declared type `Edm.Untyped`. -[AllowedTerms](./Org.OData.Validation.V1.xml#L166:~:text=Annotate a term of type Edm.AnnotationPath, or a property of type Edm.AnnotationPath that is used within a structured term, to restrict the terms that can be targeted by the path.
The annotation path expression is intended to end in a path segment with one of the listed terms. For forward compatibility, clients should be prepared for the annotation to reference terms besides those listed. -[ApplicableTerms](./Org.OData.Validation.V1.xml#L172:~:text=Names of specific terms that are applicable and may be applied in the current context. This annotation does not restrict the use of other terms. -[MaxItems](./Org.OData.Validation.V1.xml#L176:~:text=The annotated collection must have at most the specified number of items. -[MinItems](./Org.OData.Validation.V1.xml#L180:~:text=The annotated collection must have at least the specified number of items. +[Pattern](Org.OData.Validation.V1.xml#L67)|String|The pattern that a string property, parameter, or term must match. This SHOULD be a valid regular expression, according to the ECMA 262 regular expression dialect. +[Minimum](Org.OData.Validation.V1.xml#L72)|PrimitiveType|Minimum value that a property, parameter, or term can have.
Can be annotated with:
  • [Exclusive](#Exclusive)
+[Maximum](Org.OData.Validation.V1.xml#L81)|PrimitiveType|Maximum value that a property, parameter, or term can have.
Can be annotated with:
  • [Exclusive](#Exclusive)
+[Exclusive](Org.OData.Validation.V1.xml#L90)|[Tag](Org.OData.Core.V1.md#Tag)|Tags a Minimum or Maximum as exclusive, i.e. an open interval boundary. +[AllowedValues](Org.OData.Validation.V1.xml#L94)|\[[AllowedValue](#AllowedValue)\]|A collection of valid values for the annotated property, parameter, or type definition +[MultipleOf](Org.OData.Validation.V1.xml#L108)|Decimal|The value of the annotated property, parameter, or term must be an integer multiple of this positive value. For temporal types, the value is measured in seconds. +[Constraint](Org.OData.Validation.V1.xml#L112)|[ConstraintType](#ConstraintType)|Condition that the annotation target has to fulfill +[ItemsOf](Org.OData.Validation.V1.xml#L125)|\[[ItemsOfType](#ItemsOfType)\]|A list of constraints describing that entities related via one navigation property MUST also be related via another, collection-valued navigation property. The same `path` value MUST NOT occur more than once.
Example: entity type `Customer` has navigation properties `AllOrders`, `OpenOrders`, and `ClosedOrders`. The term allows to express that items of `OpenOrders` and `ClosedOrders` are also items of the `AllOrders` navigation property, even though they are defined in an `Orders` entity set. +[OpenPropertyTypeConstraint](Org.OData.Validation.V1.xml#L143)|\[[SingleOrCollectionType](#SingleOrCollectionType)\]|Dynamic properties added to the annotated open structured type are restricted to the listed types. +[DerivedTypeConstraint](Org.OData.Validation.V1.xml#L147)|\[[SingleOrCollectionType](#SingleOrCollectionType)\]|Values are restricted to types that are both identical to or derived from the declared type and a type listed in this collection.
This allows restricting values to certain sub-trees of an inheritance hierarchy, including hierarchies starting at the [Built-In Abstract Types](https://docs.oasis-open.org/odata/odata-csdl-json/v4.01/odata-csdl-json-v4.01.html#sec_BuiltInAbstractTypes). Types listed in this collection are ignored if they are not derived from the declared type of the annotated model element or would not be allowed as declared type of the annotated model element.
When applied to a collection-valued element, this annotation specifies the types allowed for members of the collection without mentioning the `Collection()` wrapper. The SingleOrCollectionType may only include the `Collection()` wrapper if the annotation is applied to an element with declared type `Edm.Untyped`. +[AllowedTerms](Org.OData.Validation.V1.xml#L166)|\[[QualifiedTermName](Org.OData.Core.V1.md#QualifiedTermName)\]|Annotate a term of type Edm.AnnotationPath, or a property of type Edm.AnnotationPath that is used within a structured term, to restrict the terms that can be targeted by the path.
The annotation path expression is intended to end in a path segment with one of the listed terms. For forward compatibility, clients should be prepared for the annotation to reference terms besides those listed. +[ApplicableTerms](Org.OData.Validation.V1.xml#L172)|\[[QualifiedTermName](Org.OData.Core.V1.md#QualifiedTermName)\]|Names of specific terms that are applicable and may be applied in the current context. This annotation does not restrict the use of other terms. +[MaxItems](Org.OData.Validation.V1.xml#L176)|Int64|The annotated collection must have at most the specified number of items. +[MinItems](Org.OData.Validation.V1.xml#L180)|Int64|The annotated collection must have at least the specified number of items. -## [AllowedValue](./Org.OData.Validation.V1.xml#L97:~:text= -## [ConstraintType](./Org.OData.Validation.V1.xml#L115:~:text= -## [ItemsOfType](./Org.OData.Validation.V1.xml#L133:~:text= -## [SingleOrCollectionType](./Org.OData.Validation.V1.xml#L162:~:text=