forked from oasis-tcs/odata-vocabularies
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Org.OData.Aggregation.V1.xml
178 lines (154 loc) · 10.9 KB
/
Org.OData.Aggregation.V1.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
<?xml version="1.0" encoding="utf-8"?>
<!--
Technical Committee:
OASIS Open Data Protocol (OData) TC
https://www.oasis-open.org/committees/odata
Chairs:
- Ralf Handl ([email protected]), SAP SE
- Ram Jeyaraman ([email protected]), Microsoft
Editors:
- Ralf Handl ([email protected]), SAP SE
- Ram Jeyaraman ([email protected]), Microsoft
- Michael Pizzo ([email protected]), Microsoft
Additional artifacts:
This vocabulary is one component of a Work Product that also includes the following vocabulary components:
- OData Core Vocabulary. Latest version: http://docs.oasis-open.org/odata/odata-vocabularies/v4.0/vocabularies/Org.OData.Core.V1.xml.
- OData Measures Vocabulary. Latest version: http://docs.oasis-open.org/odata/odata-vocabularies/v4.0/vocabularies/Org.OData.Measures.V1.xml.
- OData Capabilities Vocabulary. Latest version: http://docs.oasis-open.org/odata/odata-vocabularies/v4.0/vocabularies/Org.OData.Capabilities.V1.xml.
- OData Validation Vocabulary. Latest version: http://docs.oasis-open.org/odata/odata-vocabularies/v4.0/vocabularies/Org.OData.Validation.V1.xml.
- OData Aggregation Vocabulary. Latest version: http://docs.oasis-open.org/odata/odata-vocabularies/v4.0/vocabularies/Org.OData.Aggretation.V1.xml.
Related work:
This vocabulary is related to:
- OData Version 4.01 Part 1: Protocol. Latest version: http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html.
- OData Version 4.01 Part 2: URL Conventions. Latest version: http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html.
- OData Version 4.01 Part 3: Common Schema Definition Language (CSDL). Latest version: http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part3-csdl.html.
- OData Extension for Data Aggregation Version 4.0. Latest version: http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/odata-data-aggregation-ext-v4.0.html.
This vocabulary replaces or supersedes:
- OData Extension for Data Aggregation Version 4.0 Aggregation Vocabulary.
Abstract:
This vocabulary defines terms to describe which data in a given entity model can be aggregated, and how.
-->
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<edmx:Reference Uri="http://docs.oasis-open.org/odata/odata-vocabularies/v4.0/vocabularies/Org.OData.Core.V1.xml">
<edmx:Include Namespace="Org.OData.Core.V1" Alias="Core" />
</edmx:Reference>
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Org.OData.Aggregation.V1" Alias="Aggregation">
<Annotation Term="Core.Description">
<String>Terms to describe which data in a given entity model can be aggregated, and how.</String>
</Annotation>
<Term Name="ApplySupported" Type="Aggregation.ApplySupportedType" AppliesTo="EntityType ComplexType EntityContainer">
<Annotation Term="Core.Description">
<String>This structured type or entity container supports the $apply system query option</String>
</Annotation>
</Term>
<ComplexType Name="ApplySupportedType">
<Property Name="Transformations" Type="Collection(Edm.String)" Nullable="false">
<Annotation Term="Core.Description" String="Transformations that can be used in $apply" />
</Property>
<Property Name="CustomAggregationMethods" Type="Collection(Edm.String)" Nullable="false">
<Annotation Term="Core.Description" String="Qualified names of custom aggregation methods that can be used in aggregate(...with...)" />
</Property>
<Property Name="Rollup" DefaultValue="MultipleHierarchies" Type="Aggregation.RollupType">
<Annotation Term="Core.Description" String="The service supports rollup hierarchies in a groupby transformation" />
</Property>
<Property Name="PropertyRestrictions" DefaultValue="false" Type="Edm.Boolean">
<Annotation Term="Core.Description"
String="Only properties tagged as Groupable can be used in the groupby transformation, and only those tagged as Aggregatable can be used in the aggregate transformation" />
</Property>
</ComplexType>
<EnumType Name="RollupType">
<Annotation Term="Core.Description" String="The number of rollup operators allowed in a groupby transformation" />
<Member Name="None" />
<Member Name="SingleHierarchy" />
<Member Name="MultipleHierarchies" />
</EnumType>
<Term Name="Groupable" Type="Core.Tag" AppliesTo="Property NavigationProperty" DefaultValue="true">
<Annotation Term="Core.Description" String="This property can be used in the groupby transformation" />
</Term>
<Term Name="Aggregatable" Type="Core.Tag" AppliesTo="Property NavigationProperty" DefaultValue="true">
<Annotation Term="Core.Description" String="This property can be used in the aggregate transformation" />
</Term>
<Term Name="CustomAggregate" Type="Edm.String" AppliesTo="EntityType ComplexType EntityContainer">
<Annotation Term="Core.Description" String="Dynamic property that can be used in the aggregate transformation" />
<Annotation Term="Core.LongDescription"
String="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 values will be of that type." />
</Term>
<Term Name="ContextDefiningProperties" Type="Collection(Edm.PropertyPath)" Nullable="false" AppliesTo="Property Annotation">
<Annotation Term="Core.Description"
String="The annotated property or custom aggregate is only well-defined in the context of these properties" />
<Annotation Term="Core.LongDescription">
<String>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.</String>
</Annotation>
</Term>
<Term Name="LeveledHierarchy" Type="Collection(Edm.PropertyPath)" Nullable="false" AppliesTo="EntityType ComplexType">
<Annotation Term="Core.Description" String="Defines a leveled hierarchy by defining an ordered list of properties in the hierarchy" />
</Term>
<Term Name="RecursiveHierarchy" Type="Aggregation.RecursiveHierarchyType" AppliesTo="EntityType ComplexType">
<Annotation Term="Core.Description" String="Defines a recursive hierarchy." />
</Term>
<ComplexType Name="RecursiveHierarchyType">
<Property Name="NodeProperty" Type="Edm.PropertyPath" Nullable="false">
<Annotation Term="Core.Description" String="Property holding the hierarchy node value" />
</Property>
<Property Name="ParentNavigationProperty" Type="Edm.NavigationPropertyPath" Nullable="false">
<Annotation Term="Core.Description" String="Property for navigating to the parent node" />
</Property>
<Property Name="DistanceFromRootProperty" Type="Edm.PropertyPath" Nullable="true">
<Annotation Term="Core.Description" String="Property holding the number of edges between the node and the root node" />
</Property>
<Property Name="IsLeafProperty" Type="Edm.PropertyPath" Nullable="true">
<Annotation Term="Core.RequiresType" String="Edm.Boolean" />
<Annotation Term="Core.Description" String="Property indicating whether the node is a leaf of the hierarchy" />
</Property>
</ComplexType>
<Function Name="isroot" IsBound="true">
<Annotation Term="Core.Description"
String="Returns true, if and only if the value of the node property of the specified hierarchy is the root of the hierarchy" />
<Parameter Name="Entity" Type="Edm.EntityType" Nullable="false" />
<Parameter Name="Hierarchy" Type="Edm.String" Nullable="false" />
<ReturnType Type="Edm.Boolean" />
</Function>
<Function Name="isdescendant" IsBound="true">
<Annotation Term="Core.Description"
String="Returns true, if and only if the value of the node property of the specified hierarchy is a descendant of the given parent node with a distance of less than or equal to the optionally specified maximum distance" />
<Parameter Name="Entity" Type="Edm.EntityType" Nullable="false" />
<Parameter Name="Hierarchy" Type="Edm.String" Nullable="false" />
<Parameter Name="Node" Type="Edm.PrimitiveType" Nullable="false" />
<Parameter Name="MaxDistance" Type="Edm.Int16" />
<ReturnType Type="Edm.Boolean" />
</Function>
<Function Name="isancestor" IsBound="true">
<Annotation Term="Core.Description"
String="Returns true, if and only if the value of the node property of the specified hierarchy is an ancestor of the given child node with a distance of less than or equal to the optionally specified maximum distance" />
<Parameter Name="Entity" Type="Edm.EntityType" Nullable="false" />
<Parameter Name="Hierarchy" Type="Edm.String" Nullable="false" />
<Parameter Name="Node" Type="Edm.PrimitiveType" Nullable="false" />
<Parameter Name="MaxDistance" Type="Edm.Int16" />
<ReturnType Type="Edm.Boolean" />
</Function>
<Function Name="issibling" IsBound="true">
<Annotation Term="Core.Description"
String="Returns true, if and only if the value of the node property of the specified hierarchy has the same parent node as the specified node" />
<Parameter Name="Entity" Type="Edm.EntityType" Nullable="false" />
<Parameter Name="Hierarchy" Type="Edm.String" Nullable="false" />
<Parameter Name="Node" Type="Edm.PrimitiveType" Nullable="false" />
<ReturnType Type="Edm.Boolean" />
</Function>
<Function Name="isleaf" IsBound="true">
<Annotation Term="Core.Description"
String="Returns true, if and only if the value of the node property of the specified hierarchy has no descendants" />
<Parameter Name="Entity" Type=" Edm.EntityType" Nullable="false" />
<Parameter Name="Hierarchy" Type="Edm.String" Nullable="false" />
<ReturnType Type="Edm.Boolean" />
</Function>
<Term Name="AvailableOnAggregates" Type="Aggregation.AvailableOnAggregatesType" AppliesTo="Action Function">
<Annotation Term="Core.Description"
String="This action or function is available on aggregated entities if the RequiredProperties are still defined" />
</Term>
<ComplexType Name="AvailableOnAggregatesType">
<Property Name="RequiredProperties" Type="Collection(Edm.PropertyPath)" Nullable="false" />
</ComplexType>
</Schema>
</edmx:DataServices>
</edmx:Edmx>