Skip to content

Commit

Permalink
ODATA-1547
Browse files Browse the repository at this point in the history
  • Loading branch information
ralfhandl committed Dec 8, 2023
1 parent 30d9e4d commit 58034bd
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 0 deletions.
2 changes: 2 additions & 0 deletions docs/odata-csdl-json/odata-csdl-json.html
Original file line number Diff line number Diff line change
Expand Up @@ -1217,6 +1217,7 @@ <h3><a name="PropertyObject.6" href="#PropertyObject.6">Property Object</a></h3>
</div>
<h2 id="71-type"><a name="Type" href="#Type">7.1 Type</a></h2>
<p>The property’s type MUST be a <a href="#PrimitiveTypes">primitive type</a>, <a href="#ComplexType">complex type</a>, or <a href="#EnumerationType">enumeration type</a> in scope, or a collection of one of these types.</p>
<p>If the property is part of a chain of structural properties or <a href="#ContainmentNavigationProperty">containment navigation properties</a> leading back to the property’s declaring type, then at least one property in this chain MUST be nullable or collection-valued, otherwise instances of the declaring type would have infinite depth.</p>
<p>A collection-valued property MAY be annotated with the <a href="https://github.com/oasis-tcs/odata-vocabularies/blob/master/vocabularies/Org.OData.Core.V1.md#Ordered"><code>Core.Ordered</code></a> term, defined in <a href="#ODataVocCore">OData-VocCore</a>, to specify that it supports a stable ordering.</p>
<p>A collection-valued property MAY be annotated with the <a href="https://github.com/oasis-tcs/odata-vocabularies/blob/master/vocabularies/Org.OData.Core.V1.md#PositionalInsert"><code>Core.PositionalInsert</code></a> term, defined in <a href="#ODataVocCore">OData-VocCore</a>, to specify that it supports inserting items into a specific ordinal position.</p>
<section id="type-and-collection" class="varjson rep">
Expand Down Expand Up @@ -1291,6 +1292,7 @@ <h3><a name="NavigationPropertyObject.7" href="#NavigationPropertyObject.7">Navi
</div>
<h2 id="81-navigation-property-type"><a name="NavigationPropertyType" href="#NavigationPropertyType">8.1 Navigation Property Type</a></h2>
<p>The navigation property’s type MUST be an <a href="#EntityType">entity type</a> in scope, the <a href="#BuiltInAbstractTypes">abstract type</a> <code>Edm.EntityType</code>, or a collection of one of these types.</p>
<p>If the property is part of a chain of <a href="#StructuralProperty">structural properties </a> or <a href="#ContainmentNavigationProperty">containment navigation properties</a> leading back to the property’s declaring type, then at least one property in this chain MUST be nullable or collection-valued, otherwise instances of the declaring type would have infinite depth.</p>
<p>If the type is a collection, an arbitrary number of entities can be related. Otherwise there is at most one related entity.</p>
<p>The related entities MUST be of the specified entity type or one of its subtypes.</p>
<p>For a collection-valued containment navigation property the specified entity type MUST have a <a href="#Key">key</a> defined.</p>
Expand Down
12 changes: 12 additions & 0 deletions docs/odata-csdl-json/odata-csdl-json.md
Original file line number Diff line number Diff line change
Expand Up @@ -1756,6 +1756,12 @@ The property's type MUST be a [primitive type](#PrimitiveTypes),
[complex type](#ComplexType), or [enumeration type](#EnumerationType) in
scope, or a collection of one of these types.

If the property is part of a chain of structural properties or
[containment navigation properties](#ContainmentNavigationProperty)
leading back to the property's declaring type, then at least one property
in this chain MUST be nullable or collection-valued,
otherwise instances of the declaring type would have infinite depth.

A collection-valued property MAY be annotated with the
[`Core.Ordered`](https://github.com/oasis-tcs/odata-vocabularies/blob/master/vocabularies/Org.OData.Core.V1.md#Ordered)
term, defined in
Expand Down Expand Up @@ -1922,6 +1928,12 @@ The navigation property's type MUST be an [entity type](#EntityType) in
scope, the [abstract type](#BuiltInAbstractTypes) `Edm.EntityType`, or a
collection of one of these types.

If the property is part of a chain of [structural properties ](#StructuralProperty) or
[containment navigation properties](#ContainmentNavigationProperty)
leading back to the property's declaring type, then at least one property
in this chain MUST be nullable or collection-valued,
otherwise instances of the declaring type would have infinite depth.

If the type is a collection, an arbitrary number of entities can be
related. Otherwise there is at most one related entity.

Expand Down
2 changes: 2 additions & 0 deletions docs/odata-csdl-xml/odata-csdl-xml.html
Original file line number Diff line number Diff line change
Expand Up @@ -1131,6 +1131,7 @@ <h3 id="attribute-name-2"><a name="AttributeName.12.1" href="#AttributeName.12.1
</div>
<h2 id="71-type"><a name="Type" href="#Type">7.1 Type</a></h2>
<p>The property’s type MUST be a <a href="#PrimitiveTypes">primitive type</a>, <a href="#ComplexType">complex type</a>, or <a href="#EnumerationType">enumeration type</a> in scope, or a collection of one of these types.</p>
<p>If the property is part of a chain of structural properties or <a href="#ContainmentNavigationProperty">containment navigation properties</a> leading back to the property’s declaring type, then at least one property in this chain MUST be nullable or collection-valued, otherwise instances of the declaring type would have infinite depth.</p>
<p>A collection-valued property MAY be annotated with the <a href="https://github.com/oasis-tcs/odata-vocabularies/blob/master/vocabularies/Org.OData.Core.V1.md#Ordered"><code>Core.Ordered</code></a> term, defined in <a href="#ODataVocCore">OData-VocCore</a>, to specify that it supports a stable ordering.</p>
<p>A collection-valued property MAY be annotated with the <a href="https://github.com/oasis-tcs/odata-vocabularies/blob/master/vocabularies/Org.OData.Core.V1.md#PositionalInsert"><code>Core.PositionalInsert</code></a> term, defined in <a href="#ODataVocCore">OData-VocCore</a>, to specify that it supports inserting items into a specific ordinal position.</p>
<section id="attribute-type" class="varxml rep">
Expand Down Expand Up @@ -1190,6 +1191,7 @@ <h3 id="attribute-name-3"><a name="AttributeName.13.1" href="#AttributeName.13.1
</div>
<h2 id="81-navigation-property-type"><a name="NavigationPropertyType" href="#NavigationPropertyType">8.1 Navigation Property Type</a></h2>
<p>The navigation property’s type MUST be an <a href="#EntityType">entity type</a> in scope, the <a href="#BuiltInAbstractTypes">abstract type</a> <code>Edm.EntityType</code>, or a collection of one of these types.</p>
<p>If the property is part of a chain of <a href="#StructuralProperty">structural properties </a> or <a href="#ContainmentNavigationProperty">containment navigation properties</a> leading back to the property’s declaring type, then at least one property in this chain MUST be nullable or collection-valued, otherwise instances of the declaring type would have infinite depth.</p>
<p>If the type is a collection, an arbitrary number of entities can be related. Otherwise there is at most one related entity.</p>
<p>The related entities MUST be of the specified entity type or one of its subtypes.</p>
<p>For a collection-valued containment navigation property the specified entity type MUST have a <a href="#Key">key</a> defined.</p>
Expand Down
12 changes: 12 additions & 0 deletions docs/odata-csdl-xml/odata-csdl-xml.md
Original file line number Diff line number Diff line change
Expand Up @@ -1652,6 +1652,12 @@ The property's type MUST be a [primitive type](#PrimitiveTypes),
[complex type](#ComplexType), or [enumeration type](#EnumerationType) in
scope, or a collection of one of these types.

If the property is part of a chain of structural properties or
[containment navigation properties](#ContainmentNavigationProperty)
leading back to the property's declaring type, then at least one property
in this chain MUST be nullable or collection-valued,
otherwise instances of the declaring type would have infinite depth.

A collection-valued property MAY be annotated with the
[`Core.Ordered`](https://github.com/oasis-tcs/odata-vocabularies/blob/master/vocabularies/Org.OData.Core.V1.md#Ordered)
term, defined in
Expand Down Expand Up @@ -1806,6 +1812,12 @@ The navigation property's type MUST be an [entity type](#EntityType) in
scope, the [abstract type](#BuiltInAbstractTypes) `Edm.EntityType`, or a
collection of one of these types.

If the property is part of a chain of [structural properties ](#StructuralProperty) or
[containment navigation properties](#ContainmentNavigationProperty)
leading back to the property's declaring type, then at least one property
in this chain MUST be nullable or collection-valued,
otherwise instances of the declaring type would have infinite depth.

If the type is a collection, an arbitrary number of entities can be
related. Otherwise there is at most one related entity.

Expand Down
12 changes: 12 additions & 0 deletions odata-csdl/7 Structural Property.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,12 @@ The property's type MUST be a [primitive type](#PrimitiveTypes),
[complex type](#ComplexType), or [enumeration type](#EnumerationType) in
scope, or a collection of one of these types.

If the property is part of a chain of structural properties or
[containment navigation properties](#ContainmentNavigationProperty)
leading back to the property's declaring type, then at least one property
in this chain MUST be nullable or collection-valued,
otherwise instances of the declaring type would have infinite depth.

A collection-valued property MAY be annotated with the
[`Core.Ordered`](https://github.com/oasis-tcs/odata-vocabularies/blob/master/vocabularies/Org.OData.Core.V1.md#Ordered)
term, defined in
Expand Down Expand Up @@ -353,6 +359,12 @@ The navigation property's type MUST be an [entity type](#EntityType) in
scope, the [abstract type](#BuiltInAbstractTypes) `Edm.EntityType`, or a
collection of one of these types.

If the property is part of a chain of [structural properties ](#StructuralProperty) or
[containment navigation properties](#ContainmentNavigationProperty)
leading back to the property's declaring type, then at least one property
in this chain MUST be nullable or collection-valued,
otherwise instances of the declaring type would have infinite depth.

If the type is a collection, an arbitrary number of entities can be
related. Otherwise there is at most one related entity.

Expand Down

0 comments on commit 58034bd

Please sign in to comment.