Skip to content

Commit

Permalink
Initial versions of the vocabularies
Browse files Browse the repository at this point in the history
  • Loading branch information
ralfhandl committed Nov 18, 2016
1 parent d229e2f commit 83bdbd2
Show file tree
Hide file tree
Showing 12 changed files with 1,466 additions and 0 deletions.
39 changes: 39 additions & 0 deletions vocabularies/Org.OData.Aggregation.V1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<body xmlns:ac="remove this before pressing 'Apply'">
<h1>Aggregation Vocabulary</h1>
<p>Terms to describe which data in a given entity model can be aggregated, and how.</p>
<p>
<strong>Namespace: Org.OData.Aggregation.V1</strong>
</p>
<p></p>
<table width="100%" style="border: 1px solid #000000;" border="1">
<tbody>
<tr>
<th><strong>Term</strong></th><th><strong>Description</strong></th>
</tr>
<tr>
<td>ApplySupported</td><td>This structured type or entity container supports the $apply system query option</td>
</tr>
<tr>
<td>Groupable</td><td>This property can be used in the groupby transformation</td>
</tr>
<tr>
<td>Aggregatable</td><td>This property can be used in the aggregate transformation</td>
</tr>
<tr>
<td>CustomAggregate</td><td>Dynamic property that can be used in the aggregate transformation</td>
</tr>
<tr>
<td>ContextDefiningProperties</td><td>The annotated property or custom aggregate is only well-defined in the context of these properties</td>
</tr>
<tr>
<td>LeveledHierarchy</td><td>Defines a leveled hierarchy by defining an ordered list of properties in the hierarchy</td>
</tr>
<tr>
<td>RecursiveHierarchy</td><td>Defines a recursive hierarchy.</td>
</tr>
<tr>
<td>AvailableOnAggregates</td><td>This action or function is available on aggregated entities if the RequiredProperties are still defined</td>
</tr>
</tbody>
</table>
</body>
178 changes: 178 additions & 0 deletions vocabularies/Org.OData.Aggregation.V1.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,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 (ralf.handl@sap.com), SAP SE
- Ram Jeyaraman (Ram.Jeyaraman@microsoft.com), Microsoft
Editors:
- Ralf Handl (ralf.handl@sap.com), SAP SE
- Ram Jeyaraman (Ram.Jeyaraman@microsoft.com), Microsoft
- Michael Pizzo (mikep@microsoft.com), Microsoft
Additional artifacts:
This vocabulary is one component of a Work Product that also includes the following vocabulary components:
- OData Core Vocabulary. Latest version: 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>
18 changes: 18 additions & 0 deletions vocabularies/Org.OData.Authorization.V1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<body xmlns:ac="remove this before pressing 'Apply'">
<h1>OData Vocabulary</h1>
<p>The Authorization Vocabulary provides terms for describing a web authorization flow</p>
<p>
<strong>Namespace: Org.OData.Authorization</strong>
</p>
<p></p>
<table width="100%" style="border: 1px solid #000000;" border="1">
<tbody>
<tr>
<th><strong>Term</strong></th><th><strong>Description</strong></th>
</tr>
<tr>
<td>Authorizations</td><td>Lists the methods available to authorize access to the annotated resource.</td>
</tr>
</tbody>
</table>
</body>
Loading

0 comments on commit 83bdbd2

Please sign in to comment.