文章目录
- [第二章 将对象映射到 XML](#第二章 将对象映射到 XML)
- [将 `IRIS` 对象映射为` XML`](#将
IRIS对象映射为XML) -
- [与 `Web` 方法一起使用的对象的例外](#与
Web方法一起使用的对象的例外) - [确保属性具有对 `XML` 的映射](#确保属性具有对
XML的映射)
- [与 `Web` 方法一起使用的对象的例外](#与
第二章 将对象映射到 XML
讨论的类和属性参数
ELEMENTTYPEXMLPROJECTIONXMLFORMATXMLENABLEDXMLSUMMARYXMLDEFAULTREFERENCEGUIDENABLEDXMLIO
将 IRIS 对象映射为 XML
要将对象映射到 XML(或者定义该对象的 XML 映射),请执行以下操作:
-
将
%XML.Adaptor添加到定义该对象的类的超类列表中。Class MyApp.MyClass Extends (%Persistent, %XML.Adaptor)
{
//class details
}
此步骤对类启用 XML。
或者,如果映射的对象是系统类的实例,请改为创建并使用子类。在子类中,将%XML.Adaptor添加到超类列表中。
此外,IRIS 在其类库中提供了许多专门的支持 XML 的类。其中包括 %Net、%SOAP 和其他包中的类。所有这些支持 XML 的类都继承自 %XML.Adaptor。
- 如果要创建
%ListOfDataTypes、%ArrayOfDataTypes、%ListOfObjects或%ArrayOfObjects的启用XML的子类,则在子类中指定ELEMENTTYPE类参数。例如:
java
Class MyApp.MyIntegerCollection Extends %ListOfDataTypes
{
Parameter ELEMENTTYPE="%Library.Integer";
}
对于 ELEMENTTYPE,指定集合中使用的类的完整包和类名。如果不指定此参数,则假定类型为字符串。
仅当需要完整的 XML 架构时才需要执行此步骤。
- 确保支持
XML的类的每个属性都具有XML映射(如果合适),如下一节所述。
在大多数情况下,如果属性具有对象值,则必须对定义该属性的类启用 XML。用作属性时的集合和流是例外,如下一节所述。
数据类型类不需要做任何工作。
- 重新编译更改的类。
与 Web 方法一起使用的对象的例外
如果使用 %ListOfDataTypes、%ListOfObjects、%ArrayOfDataTypes、%ArrayOfObjects 作为 Web 方法的输入或输出,则无需创建支持 XML 的子类。有必要指定 ELEMENTTYPE,但可以在方法签名中执行此操作。
如果使用流类作为 Web 方法的输入或输出,则无需创建支持 XML 的子类。
确保属性具有对 XML 的映射
确保对象的每个属性都有一个 XML 映射:
- 对于该对象的每个简单(非对象)属性,不需要进行任何工作。每个
IRIS数据类型都已经有一个XML投影。 - 对于每个流属性,无需进行任何工作。
XML工具在将流对象用作支持XML的类的属性时会对其进行特殊处理。 - 对于集合以外的对象值属性,请
%XML.Adaptor添加到引用类的超类列表中。
这包括关系属性。