首页 > 其他分享 >OData 4.0 三种标准词汇的使用场合介绍

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

时间:2023-12-02 18:23:46浏览次数:37  
标签:Core 词汇 4.0 Vocabulary OData Measures Capabilities 属性

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 服务能够更好的满足各种各样的需求。

标签:Core,词汇,4.0,Vocabulary,OData,Measures,Capabilities,属性
From: https://www.cnblogs.com/sap-jerry/p/17871974.html

相关文章

  • error: Microsoft Visual C++ 14.0 or greater is required
    1、错误背景python在安装aiohttp库时,出现MicrosoftVisualC++14.0orgreaterisrequired的提示:2、解决方案按照错误提示,访问https://visualstudio.microsoft.com/visual-cpp-build-tools/,下载生成工具:执行下载的exe执行文件:选择使用C++桌面开发,选......
  • 工业4.0时代:图像识别驱动制造业智能生产的未来
    在数字化革命的大潮中,工业4.0的到来标志着制造业将迎来全新的智能化时代。其中,图像识别技术作为一项核心技术,正引领着制造业实现了前所未有的智能生产。本文将深入探讨工业4.0时代下,图像识别是如何驱动制造业实现智能生产,并对未来的发展趋势进行展望。**数字化转型的浪潮**工业4.0......
  • 夜莺项目发布 v6.4.0 版本,新增全局宏变量功能
    大家好,夜莺项目发布v6.4.0版本,新增全局宏变量功能,本文为大家简要介绍一下相关更新内容。全局宏变量功能像SMTP的配置中密码类型的信息,之前都是以明文的方式在页面展示,夜莺支持全局宏变量之后,可以在变量管理配置一个smtp_password的密码类型的变量,在SMTP配置页面,密码的......
  • nginx1.24.0安装服务
    下载了一个nginx版本1.24.0安装为服务,然后启动不了。 下面是正确的方法:1、下载WinSW.Net4.exe https://github.com/winsw/winsw/releases下载的是画框的exe,64位2、将 WinSW.NET4.exe 复制到 nginx-1.24.0 目录中,修改文件名称为 nginxservice.exe 。 3、nginx-1.......
  • 【4.0】常用模块之random模块
    【一】导入模块importrandom【二】随机小数【1】默认区间的小数(random)大于0且小于1之间的小数importrandom#默认是大于0且小于1之间的小数res=random.random()print(res)#0.24512653841495302【2】指定区间的小数(uniform)importrandom#指定为0到......
  • Ubuntu 24.04 LTS “Noble Numbat” 预计于 2024 年 4 月 25 日发布
    导读Canonical今天宣布了下一个Ubuntu版本的代号,Ubuntu24.04LTS,代号“NobleNumbat”,计划于明年的4月25日发布。这个即将发布的版本预计将搭载GNOME46桌面环境。Ubuntu24.04LTS“NobleNumbat”将是Canonical的第40个Ubuntu发行版和第10个LTS(长......
  • boot3+JDK17+spring-cloud-gateway:4.0.0+spring-cloud:2022.0.0.0+Nacos2.2.1配置动
    项目依赖配置#Nacos帮助文档:https://nacos.io/zh-cn/docs/concepts.html#Nacos认证信息spring.cloud.nacos.config.username=nacosspring.cloud.nacos.config.password=nacosspring.cloud.nacos.config.contextPath=/nacos#设置配置中心服务端地址spring.cloud.naco......
  • 键盘交互(4.0)
    本文学习于B站,记录,借鉴;视频链接:键盘操作与物体移动_哔哩哔哩_bilibili非easyx函数----键盘消息函数;注意头文件的引用conio.h使用_getch();接受键盘读入值;后续在case里面放入要变化的逻辑,在这里就举一个wasd移动的例子://_getch();是一个阻塞函数;如果不输入就一直死卡那里。 可......
  • 【4.0】Python高级之匿名函数
    【一】匿名函数的定义在Python里有两类函数:第一类:用def关键词定义的正规函数第二类:用lambda关键词定义的匿名函数Python使用lambda关键词来创建匿名函数,而非def关键词lambdaargument_list:expressionlambda:定义匿名函数的关键词。argument_list:函......
  • 【4.0】Python中级之字符编码
    【一】文本编辑器与Python解释器原理字符串类型、文本文件的内容都是由字符组成的,但凡涉及到字符的存取,都需要考虑字符编码的问题。【1】数据存放位置所有软件都是运行硬件之上的与运行软件相关的三大核心硬件为cpu、内存、硬盘软件运行前,软件的代码及其相关数据都......