第二章 将对象映射到 XML

文章目录

  • [第二章 将对象映射到 XML](#第二章 将对象映射到 XML)
  • [将 `IRIS` 对象映射为` XML`](#将 IRIS 对象映射为 XML)
    • [与 `Web` 方法一起使用的对象的例外](#与 Web 方法一起使用的对象的例外)
    • [确保属性具有对 `XML` 的映射](#确保属性具有对 XML 的映射)

第二章 将对象映射到 XML

讨论的类和属性参数

  • ELEMENTTYPE
  • XMLPROJECTION
  • XMLFORMAT
  • XMLENABLED
  • XMLSUMMARY
  • XMLDEFAULTREFERENCE
  • GUIDENABLED
  • XMLIO

IRIS 对象映射为 XML

要将对象映射到 XML(或者定义该对象的 XML 映射),请执行以下操作:

  1. %XML.Adaptor 添加到定义该对象的类的超类列表中。

    Class MyApp.MyClass Extends (%Persistent, %XML.Adaptor)
    {
    //class details
    }

此步骤对类启用 XML

或者,如果映射的对象是系统类的实例,请改为创建并使用子类。在子类中,将%XML.Adaptor添加到超类列表中。

此外,IRIS 在其类库中提供了许多专门的支持 XML 的类。其中包括 %Net%SOAP 和其他包中的类。所有这些支持 XML 的类都继承自 %XML.Adaptor

  1. 如果要创建 %ListOfDataTypes%ArrayOfDataTypes%ListOfObjects%ArrayOfObjects 的启用 XML 的子类,则在子类中指定 ELEMENTTYPE 类参数。例如:
java 复制代码
Class MyApp.MyIntegerCollection Extends %ListOfDataTypes
{
Parameter ELEMENTTYPE="%Library.Integer";

}

对于 ELEMENTTYPE,指定集合中使用的类的完整包和类名。如果不指定此参数,则假定类型为字符串。

仅当需要完整的 XML 架构时才需要执行此步骤。

  1. 确保支持 XML 的类的每个属性都具有 XML 映射(如果合适),如下一节所述。

在大多数情况下,如果属性具有对象值,则必须对定义该属性的类启用 XML。用作属性时的集合和流是例外,如下一节所述。

数据类型类不需要做任何工作。

  1. 重新编译更改的类。

Web 方法一起使用的对象的例外

如果使用 %ListOfDataTypes%ListOfObjects%ArrayOfDataTypes%ArrayOfObjects 作为 Web 方法的输入或输出,则无需创建支持 XML 的子类。有必要指定 ELEMENTTYPE,但可以在方法签名中执行此操作。

如果使用流类作为 Web 方法的输入或输出,则无需创建支持 XML 的子类。

确保属性具有对 XML 的映射

确保对象的每个属性都有一个 XML 映射:

  • 对于该对象的每个简单(非对象)属性,不需要进行任何工作。每个 IRIS 数据类型都已经有一个 XML 投影。
  • 对于每个流属性,无需进行任何工作。 XML 工具在将流对象用作支持 XML 的类的属性时会对其进行特殊处理。
  • 对于集合以外的对象值属性,请 %XML.Adaptor 添加到引用类的超类列表中。

这包括关系属性。

相关推荐
AI多Agent协作实战派1 小时前
AI多Agent协作系统实战(二十三):Agent读HEARTBEAT.md不读AGENTS.md——openclaw的文件加载之谜
前端·数据库·人工智能·uni-app
mct1231 小时前
c++ iconv 字符utf-8转换gb2312失败
开发语言·c++
2601_955760072 小时前
如何用 Claude Opus 5 API 批量扩展长尾关键词和文章选题
前端·python·搜索引擎
KaMeidebaby2 小时前
卡梅德生物技术快报|bli亲和力检测gst:告别批量跑胶:BLI实时酶切监测技术加速GST融合蛋白下游流程优化
前端·网络·数据库·人工智能·算法
触底反弹2 小时前
🚀 删了数据刷新又回来?3 组件 × 4 回调 × 3 坑讲透 React 父子通信
前端·javascript·react.js
Marst Code3 小时前
Python 3.9 已停止维护!从 3.9 到 3.14 全版本深度对比,生产环境该选哪个?
开发语言·python
ZJH__GO3 小时前
网络编程v2--多客户端互通
java·运维·服务器·开发语言·计算机网络
万岳科技系统开发3 小时前
智慧医院小程序开发推动医疗服务流程全面线上化
大数据·开发语言·人工智能
一只小灿灿3 小时前
C++ 修饰符全面详解
开发语言·c++
马里马里奥-3 小时前
从零搭建AI Agent工具链的技术文章大纲
开发语言·qt