第七章 将对象映射到 XML - 指定 XML 摘要

第七章 将对象映射到 XML - 指定 XML 摘要

指定 XML 摘要

当类用作属性时,可以轻松指定要映射到 XML 的类的哪些属性:

  • 在类中,将 XMLSUMMARY 类参数指定为要映射到 XML 的属性的逗号分隔列表,其大小写与类定义中使用的大小写完全相同。请注意,XMLSUMMARY 不能包含伪属性 IDOID

除非还指定以下一个或两个参数,否则此参数无效。

  • 在同一个类中,可以选择将 XMLDEFAULTREFERENCE 指定为"SUMMARY"或"COMPLETE"(默认值);这些值不区分大小写。选项"SUMMARY"意味着当此类用作属性时,只有在 XMLSUMMARY 中列出的属性才应在映射中使用。选项"COMPLETE"意味着应使用具有 XML 映射的所有属性。

这些值不区分大小写。

  • 在使用此类作为属性的类中,可以选择将 XMLREFERENCE 属性参数指定为"SUMMARY"或"COMPLETE"(默认值);这些值不区分大小写。这会覆盖 XMLDEFAULTREFERENCE 类参数。

只能为值为对象的属性设置此属性参数。

例如,考虑以下 Address 类:

java 复制代码
Class xmlsummary.Address Extends (%RegisteredObject, %XML.Adaptor)
{

Parameter XMLSUMMARY = "City,ZipCode";

Parameter XMLDEFAULTREFERENCE = "SUMMARY";

Property Street As %String;

Property City As %String;

Property State As %String;

Property ZipCode As %String;

}

下面显示了此类实例的 XML 表示形式的示例:

java 复制代码
<Address>
  <Street>47 Winding Way</Street>
  <City>Middlebrook</City>
  <State>GA</State>
  <ZipCode>50291</ZipCode>
</Address>

请注意,所有属性都包含在内。

现在考虑另一个使用 Address 类作为属性的类:

java 复制代码
Class xmlsummary.Person Extends (%RegisteredObject, %XML.Adaptor)
{

Property Name As %String;

Property Address as Address;

}

下面显示了此类实例的 XML 表示形式的示例:

xmll 复制代码
<Person>
  <Name>Penelope Farnsworth</Name>
  <Address>
    <City>Middlebrook</City>
    <ZipCode>50291</ZipCode>
  </Address>
</Person>

此处,由于 Address 类是该类的属性,因此使用 XMLSUMMARYXMLDEFAULTREFERENCE 参数,并且在映射中仅使用 XMLSUMMARY 中列出的类属性。

可以使用"COMPLETE"选项强制覆盖。例如,以下类也使用 Address 类作为属性,但将 XMLREFERENCE 指定为"COMPLETE":

java 复制代码
Class xmlsummary.Employee Extends (%RegisteredObject, %XML.Adaptor)
{

Property Name As %String;

Property Address As Address(XMLREFERENCE = "COMPLETE");

}

下面显示了此类实例的 XML 表示形式的示例:

xml 复制代码
<Employee>
  <Name>Malcom Winters</Name>
  <Address>
    <Street>770 Enders Lane</Street>
    <City>Middlebrook</City>
    <State>GA</State>
    <ZipCode>50293</ZipCode>
  </Address>
</Employee>

包含所有具有 XML 映射的属性;在这种情况下,这意味着所有属性都包含在内。

相关推荐
咫尺的梦想0071 分钟前
vue笔记(第一天)
前端·vue.js·笔记
zhougl9963 分钟前
NoSQL 数据库和内存数据库 - MongoDB简单了解
java·前端·javascript
爱学习的马喽10 分钟前
React钩子函数完全指南:从useState到useEffect的实战详解与场景剖析
前端·javascript·react.js
abigale0320 分钟前
开发实战 - ego商城 - 7 地址管理模块
前端·uni-app·node.js
焦糖小布丁22 分钟前
泛域名SSL证书:一张证书保护所有子域名,企业网站必选
前端
SamsongSSS22 分钟前
JavaScript逆向Vue处理事件和捕获错误的核心逻辑
前端·javascript·vue.js·逆向
10x101 小时前
# Docker 使用笔记:重新理解镜像、容器与数据持久化
后端
笨笨狗吞噬者1 小时前
【uniapp】解决小程序分包下的json文件编译后生成到主包的问题
前端·uni-app
Rover.x1 小时前
Spring国际化语言切换不生效
java·后端·spring
IT_陈寒1 小时前
Redis 7个性能优化技巧,让我们的QPS从5k提升到20k+
前端·人工智能·后端