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

文章目录

  • [第七章 将对象映射到 XML - 指定 XML 摘要](#第七章 将对象映射到 XML - 指定 XML 摘要)
  • [指定 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 映射的属性;在这种情况下,这意味着所有属性都包含在内。

相关推荐
只可远观11 小时前
Android XML命令式和Jetpack Compose声明式UI
android·xml
鹏晨互联14 小时前
《深入理解 Compose 中的 matchParentSize 与 fillMaxSize —— 从 XML 到 Compose 的对比解析》
xml
小短腿的代码世界15 小时前
Qt SVG渲染管线全解析:从XML解析到像素绘制的完整架构设计与性能优化实战
xml·qt·性能优化
HMS工业网络1 天前
技术干货:EtherCAT设备ESI(XML)文件中的CompleteAccess关键字有什么作用
xml·运维·服务器
proware2 天前
从3588适配atlas 200i pro聊起
cache·310p
鹏晨互联2 天前
【Compose vs XML:边框内外间距的实现对比】
android·xml
鹏晨互联4 天前
Jetpack Compose vs XML:fillMaxSize、fillMaxHeight、fillMaxWidth 全面对比
android·xml
如果'\'真能转义说5 天前
OOXML 文档格式剖析:哈希、ZIP结构与识别
xml·算法·c#·哈希算法
ZC跨境爬虫6 天前
跟着 MDN 学 HTML day_34:(深入XML 中的 CDATASection 接口)
xml·前端·html·html5·媒体