OData 4.0 三种标准词汇的使用场合介绍

简介: OData 4.0 三种标准词汇的使用场合介绍

OData 4.0 定义了三个标准词汇(vocabularies):Core, Capabilities 和 Measures.

我们看个实际的例子:

<Property Name=“OrderedQuantity” Type=“Edm.Int16”>
  <Annotation Term=“Measures.Unit” Path=“OrderedUnit” />
</Property>
<Property Name=“OrderedUnit” Type=“Edm.String” />
<Property Name=“Price” Type=“Edm.Decimal” Scale=“variable”>
  <Annotation Term=“Measures.ISOCurrency” Path=“Currency” />
  <Annotation Term=“Measures.Scale” Path=“DisplayScale” />
</Property>
<Property Name=“DisplayScale” Type=“Edm.Byte” />
    <Property Name=“Currency” Type=“Edm.String” MaxLength=“3”>
      <Annotation Term=“SAP.Text” Path=“CurrencyText” />
    </Property>
<Property Name=“CurrencyText” Type=“Edm.String”>
  <Annotation Term=“Core.IsLanguageDependent” />
</Property>

上面的示例使用了 Measure 词汇表中的三个术语、Core 词汇表中的一个术语以及三个标准词汇表中不存在的概念的 SAP 特定术语。

第一个重要事实是:标准化术语和自定义术语的 Annotations 看起来相同。

第二个重要事实是:标准术语和自定义术语的定义也使用相同的语言结构。

OData 4.0 中的 Vocabulary 是一种极其重要的语义扩展机制,它可以为 OData 协议赋予更丰富的元数据信息。在 OData 中,我们主要有 Core, Capabilities 和 Measures 这三种 Vocabulary。

Core Vocabulary 旨在提供一种方式来描述通用的概念或属性。例如,您可能希望标记某个属性为只读,或者指出某个实体是一个抽象实体。这是一种通用的 Vocabulary,可用于各种场景,包括但不限于描述实体的生命周期、关联、权限等。例如,我们可以使用 Core Vocabulary 来标记一个属性为只读:

<Property Name="ID" Type="Edm.String" Nullable="false">
  <Annotation Term="Core.Computed" Bool="true"/>
</Property>

在这个例子中,我们对 “ID” 属性使用了 Core.Computed 这个注解,表示这个属性是计算出来的,也就是说,它是只读的。

Capabilities Vocabulary 主要用于描述服务的能力。这种 Vocabulary 主要用于向客户端声明服务端所支持的操作,例如是否支持排序、筛选、分页等。例如,我们可以声明我们的服务不支持过滤操作:

<EntityContainer Name="Container">
  <Annotation Term="Capabilities.FilterRestrictions">
    <Record>
      <PropertyValue Property="Filterable" Bool="false"/>
    </Record>
  </Annotation>
</EntityContainer>

在这个例子中,我们使用了 Capabilities.FilterRestrictions 这个注解,表示我们的服务不支持过滤操作。

Measures Vocabulary 主要用于描述度量单位。它允许我们为数值属性定义度量单位,例如货币、长度、重量等。例如,我们可以为一个属性定义货币单位:

<Property Name="Price" Type="Edm.Decimal" Nullable="false">
  <Annotation Term="Measures.ISOCurrency" String="USD"/>
</Property>

在这个例子中,我们使用了 Measures.ISOCurrency 这个注解,表示 “Price” 这个属性的单位是美元。

总的来说,OData 4.0 的 Vocabulary 提供了一种强大的元数据扩展机制,使得我们可以为 OData 服务添加更丰富的语义信息。Core Vocabulary 提供了描述通用概念的能力,Capabilities Vocabulary 允许我们声明服务的能力,而 Measures Vocabulary 则为我们提供了描述度量单位的能力。这三种 Vocabulary 在不同的场景下都有其独特的用途,使得 OData 服务能够更好的满足各种各样的需求。

相关文章
|
1月前
|
BI
如何使用动态 ABAP 程序生成技术,对 ABAP 系统标准的报表行为进行微调试读版
如何使用动态 ABAP 程序生成技术,对 ABAP 系统标准的报表行为进行微调试读版
|
人工智能 自然语言处理
UDOP项目原作解读:统一视觉、语言、格式、任务的通用文档处理模型
UDOP项目原作解读:统一视觉、语言、格式、任务的通用文档处理模型
306 0
ABAP 创建数据类型的三种方式,各自的使用场合和优缺点辨析试读版
ABAP 创建数据类型的三种方式,各自的使用场合和优缺点辨析试读版
|
存储 前端开发
谈谈数据标准和数据模型
标准定义了一个参考框架,强化交互各方之间的信任。例如,当您在加油站加满汽车油箱时,“升”汽油的标准定义将确保您获得的汽油量是您认为的。反过来,“人民币”的标准定义向加油站所有者保证,您正在向他支付您购买的汽油的适当价值。
谈谈数据标准和数据模型
|
数据采集 人工智能 自然语言处理
谷歌提出多语言BERT模型:可为109种语言生成与语言无关的跨语言句子嵌入
谷歌研究人员提出了一种LaBSE的多语言BERT嵌入模型。该模型可为109种语言生成与语言无关的跨语言句子嵌入,同时在跨语言文本检索性能优于LASER。
331 0
谷歌提出多语言BERT模型:可为109种语言生成与语言无关的跨语言句子嵌入
|
XML 安全 JavaScript
介绍一种Fiori标准应用的增强方式
介绍一种Fiori标准应用的增强方式
115 0
介绍一种Fiori标准应用的增强方式
|
算法
【计算理论】下推自动机 PDA ( 上下文无关语言 CFL 的 泵引理 | 泵引理反证示例 | 自动机扩展 )
【计算理论】下推自动机 PDA ( 上下文无关语言 CFL 的 泵引理 | 泵引理反证示例 | 自动机扩展 )
376 0
组织解码之六
问面试官什么问题可以了解到企业真正的文化,《首席组织官》
83 0
组织解码之三
组织建设toB还是toC的选择,《首席组织官》
133 0
组织解码之四
组织建设为什么要有toC+toB思考,《首席组织官》
109 0