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

第九章 将对象映射到 XML - 控制集合属性的映射形式

来自网友在路上 175875提问 提问时间:2023-11-19 11:07:26阅读次数: 75

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

文章目录

  • 第九章 将对象映射到 XML - 控制集合属性的映射形式
  • 控制集合属性的映射形式
    • 指定列表属性的映射形式
  • 指定数组属性的映射形式

第九章 将对象映射到 XML - 控制集合属性的映射形式

控制集合属性的映射形式

要控制集合属性的 XML 映射的形式,请设置该属性的 XMLPROJECTION 参数,如下所示:

XMLPROJECTION 对集合属性的影响

Value of XMLPROJECTIONEffect on Collection Properties“WRAPPED”该属性被映射为具有子元素的元素;每个子元素对应于集合中的一个项目。这是集合属性的默认值。“ELEMENT”集合中的每个项目都被映射为一个元素,而不被包装在父属性中。“NONE”该属性不会投影为 XML。“ATTRIBUTE”, “XMLATTRIBUTE”, or “CONTENT”编译时错误。

以下部分显示了具有数据类型列表或数组属性的示例。对于对象集合,映射元素可以递归地具有进一步的结构,具体取决于这些对象的 XML 映射。

指定列表属性的映射形式

以下类定义使用“WRAPPED”和“ELEMENT”值的集合属性:

Class xmlproj.DataTypeColls Extends (%RegisteredObject, %XML.Adaptor)
{Property Collection1 As list Of %String;Property Collection2 As list Of %String (XMLPROJECTION="wrapped");Property Collection3 As list Of %String (XMLPROJECTION="element");}

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

<?xml version="1.0" encoding="UTF-8"?>
<DataTypeColls><Collection1><Collection1Item>list item 1</Collection1Item><Collection1Item>list item 2</Collection1Item></Collection1><Collection2><Collection2Item>list item 1</Collection2Item><Collection2Item>list item 2</Collection2Item></Collection2><Collection3>list item 1</Collection3><Collection3>list item 2</Collection3>
</DataTypeColls>

对于使用“ELEMENT”的 Collection3 属性,XML 映射忽略该属性的列表性质,而是将每个列表项视为该类的单独属性。

指定数组属性的映射形式

对于数组,每个数组项都有一个值和一个键,这两条信息都必须用 XML 表示。键始终被映射为元素内的 XML 属性。考虑下面的类:

Class xmlproj.DataTypeArray Extends (%RegisteredObject, %XML.Adaptor)
{Property ArrayProp As array Of %String;}

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

<?xml version="1.0" encoding="UTF-8"?>
<DataTypeArray><ArrayProp><ArrayPropItem ArrayPropKey="1">apples</ArrayPropItem><ArrayPropItem ArrayPropKey="2">bananas</ArrayPropItem><ArrayPropItem ArrayPropKey="3">chocolate</ArrayPropItem></ArrayProp>
</DataTypeArray>

如果将 XMLPROJECTION 指定为“ELEMENT”,则 XML 投影如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<DataTypeArray><ArrayProp ArrayPropKey="1">apples</ArrayProp><ArrayProp ArrayPropKey="2">bananas</ArrayProp><ArrayProp ArrayPropKey="3">chocolate</ArrayProp>
</DataTypeArray>
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"第九章 将对象映射到 XML - 控制集合属性的映射形式":http://eshow365.cn/6-39192-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!