当前位置:首页 > 编程笔记 > 正文
已解决

第八章 将对象映射到 XML - 仅映射对象标识符

来自网友在路上 171871提问 提问时间:2023-11-19 11:59:04阅读次数: 71

最佳答案 问答题库718位专家为你答疑解惑

文章目录

  • 第八章 将对象映射到 XML - 仅映射对象标识符
  • 仅映射对象标识符

第八章 将对象映射到 XML - 仅映射对象标识符

仅映射对象标识符

可以仅映射对象的标识符,而不是以默认方式映射对象值属性。为此,请对 XMLDEFAULTREFERENCE 类参数或 XMLREFERENCE 属性参数使用以下值之一:

  • ID”选项仅映射对象的内部 ID(存储在磁盘上)。它不映射任何属性。例如,考虑以下类:
Class xmlidentifiers.Person Extends (%Persistent, %XML.Adaptor)
{Property Name As %String;Property PrimaryCarePhysician As Person (XMLREFERENCE = "ID");}

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

<Person><Name>Sam Smith</Name><PrimaryCarePhysician>24</PrimaryCarePhysician>
</Person>
  • OID”选项仅映射对象的 OID(如 package.class,ID)。它不映射任何属性。如果我们将此选项用于 PrimaryCarePhysician 属性,则前面的 Person 对象将按如下方式投影:
<Person><Name>Sam Smith</Name><PrimaryCarePhysician>xmlidentifiers.Person,24</PrimaryCarePhysician>
</Person>
  • GUID”选项仅映射对象的 GUID(Global唯一 ID)(如果可用)。除非 GUIDENABLED 类参数为 1,否则对象的 GUIDnull。假设我们按如下方式重新定义 Person 类:
Class xmlidentifiers.Person Extends (%Persistent, %XML.Adaptor)
{Parameter GUIDENABLED=1;Property Name as %String;Property PrimaryCarePhysician As Person (XMLREFERENCE = "GUID");}

在这种情况下,此类实例的 XML 表示形式可能如下:

<Person><Name>Sam Smith</Name><PrimaryCarePhysician>D0F383EB-DB31-4C11-AD56-AA14EB37B734</PrimaryCarePhysician>
</Person>

注意:对于属性参数 XMLREFERENCE,仅当值是持久对象时才可以使用“ID”、“OID”和“GUID”选项。否则会收到编译时错误。

同样,如果将类参数 XMLDEFAULTREFERENCE 设置为“ID”、“OID”或“GUID”,并且该类具有值为非持久对象的属性,则必须显式将属性参数 XMLREFERENCE 设置为“COMPLETE”或这些属性的“摘要”。

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"第八章 将对象映射到 XML - 仅映射对象标识符":http://eshow365.cn/6-39237-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!