• 第九章 将对象映射到 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");
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

    
    <DataTypeColls>
      <Collection1>
        <Collection1Item>list item 1Collection1Item>
        <Collection1Item>list item 2Collection1Item>
      Collection1>
      <Collection2>
        <Collection2Item>list item 1Collection2Item>
        <Collection2Item>list item 2Collection2Item>
      Collection2>
      <Collection3>list item 1Collection3>
      <Collection3>list item 2Collection3>
    DataTypeColls>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

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

    指定数组属性的映射形式

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

    Class xmlproj.DataTypeArray Extends (%RegisteredObject, %XML.Adaptor)
    {
    
    Property ArrayProp As array Of %String;
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

    
    <DataTypeArray>
      <ArrayProp>
        <ArrayPropItem ArrayPropKey="1">applesArrayPropItem>
        <ArrayPropItem ArrayPropKey="2">bananasArrayPropItem>
        <ArrayPropItem ArrayPropKey="3">chocolateArrayPropItem>
      ArrayProp>
    DataTypeArray>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

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

    
    <DataTypeArray>
      <ArrayProp ArrayPropKey="1">applesArrayProp>
      <ArrayProp ArrayPropKey="2">bananasArrayProp>
      <ArrayProp ArrayPropKey="3">chocolateArrayProp>
    DataTypeArray>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    ElasticSearch
    React 入门:使用脚手架创建应用
    Python伪随机数模块random
    延时 启动exe程序
    如何在@GenericGenerator中显式指定schema
    FRDM-MCXN947开发板之i2c应用
    测试框架到底是什么,如何定义?
    多线程进阶:常见数据结构的安全性分析
    WCS WMS WES关系
    聊聊基于maven的springboot的“过时“用法
  • 原文地址:https://blog.csdn.net/yaoxin521123/article/details/134486967