网站制作叫什么,单页式网站,05网数学,教育培训网站模板文章目录 第三章 将对象映射到 XML - 使用列表或数组定义的属性使用列表或数组定义的属性%ListOfDataTypes 或 %ArrayOfDataTypes 类型的属性%ListOfObjects 或 %ArrayOfObjects 类型的属性 第三章 将对象映射到 XML - 使用列表或数组定义的属性
使用列表或数组定义的属性
对… 文章目录 第三章 将对象映射到 XML - 使用列表或数组定义的属性使用列表或数组定义的属性%ListOfDataTypes 或 %ArrayOfDataTypes 类型的属性%ListOfObjects 或 %ArrayOfObjects 类型的属性 第三章 将对象映射到 XML - 使用列表或数组定义的属性
使用列表或数组定义的属性
对于使用语法 Property PropName As List of classname 或 Property PropName As Array of classname 定义的每个属性请执行以下操作
如果 classname 是对象类则对该类启用 XML。即 %XML.Adaptor 添加到类名的超类列表中。如果 classname 是数据类型类则无需执行任何操作。如果 classname 是流类并且属性是列表则不需要任何工作。流被映射为 XML 作为字符串。
注意IRIS 不支持将流数组映射到 XML。如果对象具有定义为流数组的属性请为该属性包含 XMLPROJECTIONnone。
Class MyApp.MyXMLObject Extends (%RegisteredObject, %XML.Adaptor)
{
Property MyListOfObjects As list Of MyApp.OtherXMLObject;Property MyArrayOfObjects As array Of MyApp.OtherXMLObject;Property MyListOfDT As list Of %String;Property MyArrayOfDT As array Of %String;Property MyListOfStreams As list Of %GlobalCharacterStream;Property MyArrayOfStreams As array Of %GlobalCharacterStream(XMLPROJECTION NONE);
}%ListOfDataTypes 或 %ArrayOfDataTypes 类型的属性
XML 工具自动将%ListOfDataTypes 类型的属性或 %ArrayOfDataTypes 类型的属性映射为容器。默认情况下容器包含字符串元素。
如果需要正确的 XML 架构并且假设元素是字符串不合适则创建并使用集合类的子类。在子类中指定 ELEMENTTYPE 类参数。例如
Class MyApp.MyIntegerCollection Extends %ListOfDataTypes
{
Parameter ELEMENTTYPE%Library.Integer;}对于 ELEMENTTYPE指定集合中使用的类的完整包和类名。
%ListOfObjects 或 %ArrayOfObjects 类型的属性
XML 工具自动将 %ListOfObjects 类型的属性映射为属性或将 %ArrayOfObjects 类型的属性映射为容器。然而有必要使集合中使用的类支持 XML。
对于类型为 %ArrayOfObjects 的属性集合中使用的类不能是流类。
如果需要完整的 XML 架构则必须指定集合的元素类型。为此请创建并使用集合类的子类。在子类中指定 ELEMENTTYPE 类参数如上一节所示。