第六章 将对象映射到 XML - 控制对象值属性的映射形式
控制对象值属性的映射形式
对于每个对象值属性,默认 XML
映射由一个 XML
元素(表示对象本身)和表示该对象属性的子元素或属性组成,由该对象类中的 XML 映射选项控制。
注意:后面的部分讨论以下特殊的对象值属性:集合、关系和流。
指定对象值属性的映射形式
要控制对象属性的映射方式,请设置该属性的 XMLPROJECTION
参数,如下所示:
XMLPROJECTION
对对象属性的影响
Value of XMLPROJECTION |
Effect on Collection Properties |
---|---|
"WRAPPED" |
该属性被映射为具有子元素的元素。该元素对应于对象类。每个子元素对应于该类的一个属性。这是对象属性(流除外)的默认值。 |
"ELEMENT" |
对象类的每个属性都被映射为一个元素,而不是包装在父元素中。 |
"NONE" |
该属性不会投影为 XML 。 |
"ATTRIBUTE", "XMLATTRIBUTE", or "CONTENT" |
编译时错误。 |
例如,考虑以下类:
Class Basics.ObjectPropsDemo Extends (%RegisteredObject, %XML.Adaptor)
{
Property Object1 As SimpleObject(XMLPROJECTION = "wrapped");
Property Object2 As SimpleObject(XMLPROJECTION = "element");
}
下面显示了此类实例的 XML
表示形式的示例:
<ObjectPropsDemo>
<Object1>
<SimpleObject>
<MyProp>abcdef</MyProp>
<AnotherProp>qrstuv</AnotherProp>
</SimpleObject>
</Object1>
<Object2>
<MyProp>abcdef</MyProp>
<AnotherProp>qrstuv</AnotherProp>
</Object2>
</ObjectPropsDemo>