当前位置: 首页 > news >正文

第三章 将对象映射到 XML - 使用列表或数组定义的属性

文章目录

  • 第三章 将对象映射到 XML - 使用列表或数组定义的属性
  • 使用列表或数组定义的属性
  • `%ListOfDataTypes` 或 `%ArrayOfDataTypes` 类型的属性
  • `%ListOfObjects` 或 `%ArrayOfObjects` 类型的属性

第三章 将对象映射到 XML - 使用列表或数组定义的属性

使用列表或数组定义的属性

对于使用语法 Property PropName As List of classnameProperty PropName As Array of classname 定义的每个属性,请执行以下操作:

  • 如果 classname 是对象类,则对该类启用 XML。即, %XML.Adaptor 添加到类名的超类列表中。
  • 如果 classname 是数据类型类,则无需执行任何操作。
  • 如果 classname 是流类,并且属性是列表,则不需要任何工作。流被映射为 XML 作为字符串。

注意:IRIS 不支持将流数组映射到 XML。如果对象具有定义为流数组的属性,请为该属性包含 XMLPROJECTION="none"

Class MyApp.MyXMLObject Extends (%RegisteredObject, %XML.Adaptor)
{
Property MyListOfObjects As list Of MyApp.OtherXMLObject;Property MyArrayOfObjects As array Of MyApp.OtherXMLObject;Property MyListOfDT As list Of %String;Property MyArrayOfDT As array Of %String;Property MyListOfStreams As list Of %GlobalCharacterStream;Property MyArrayOfStreams As array Of %GlobalCharacterStream(XMLPROJECTION = "NONE");
}

%ListOfDataTypes%ArrayOfDataTypes 类型的属性

XML 工具自动将%ListOfDataTypes 类型的属性或 %ArrayOfDataTypes 类型的属性映射为容器。默认情况下,容器包含字符串元素。

如果需要正确的 XML 架构,并且假设元素是字符串不合适,则创建并使用集合类的子类。在子类中,指定 ELEMENTTYPE 类参数。例如:

Class MyApp.MyIntegerCollection Extends %ListOfDataTypes
{
Parameter ELEMENTTYPE="%Library.Integer";}

对于 ELEMENTTYPE,指定集合中使用的类的完整包和类名。

%ListOfObjects%ArrayOfObjects 类型的属性

XML 工具自动将 %ListOfObjects 类型的属性映射为属性,或将 %ArrayOfObjects 类型的属性映射为容器。然而,有必要使集合中使用的类支持 XML。

对于类型为 %ArrayOfObjects 的属性,集合中使用的类不能是流类。

如果需要完整的 XML 架构,则必须指定集合的元素类型。为此,请创建并使用集合类的子类。在子类中,指定 ELEMENTTYPE 类参数,如上一节所示。

http://www.lryc.cn/news/229849.html

相关文章:

  • C/S架构学习之基于TCP的本地通信(客户机)
  • CCF 备忘
  • Spring Framework中的依赖注入:构造器注入 vs. Setter注入
  • Java学习之路 —— API篇
  • Windows下安装Anaconda5.3.1+Python3.8+TensorFlow2.13.0-CPU版本总结
  • DigitalVirt 日本 Lite VPS 测评
  • Ridgeline plot / 远山图 / 山脊图 怎么画?怎么优化?
  • 【STM32/FreeRTOS】SysTick定时器及FreeRTOS系统节拍
  • Vue3封装自定义指令+h()
  • 爆火的迅雷网盘推广,一手云盘app拉新推广渠道必备项目 学习资料
  • Jmeter 请求返回多字段 —— 传递登录接口!
  • es 7.0常用的命令
  • [文件读取]lanproxy 文件读取 (CVE-2021-3019)
  • 记录一种引起 CL.exe/ C++ 编译器无任何提示直接崩溃的问题
  • 【华为OD机试高分必刷题目】生理周期(C++-模拟迭代实现)
  • 【Vue】过滤器Filters
  • springcloud旅游网站源码
  • Unity中关于Lerp()方法的使用
  • 计算机毕业设计选题推荐-体育赛事微信小程序/安卓APP-项目实战
  • Android BottomSheetDialog中列表滑动冲突问题
  • sql查询查看数据库空间使用情况
  • 算法分析与设计考前冲刺 (算法基础、数据结构与STL、递归和分治、 动态规划、贪心算法、 回溯算法)
  • Spring Data JPA 实现集成实体对象数据库的创建、修改时间字段自动更新
  • Vue3集成json-editor-vue3
  • UML建模语言
  • centos7系统离线安装tcpdump抓包软件、使用教程
  • 划分VOC数据集,以及转换为划分后的COCO数据集格式
  • JAVA基础8:方法
  • 域名反查Api接口——让您轻松查询域名相关信息
  • 果儿科技:打造无代码开发的电商平台、CRM和用户运营系统