
嵌套业务对象的单个实例
使用
setWithCreate 函数可创建嵌套业务对象的单个实例。准备工作
以下示例代码说明了一般情况下如何为较高级别(父代)对象中的中间级别(子代)对象创建代码以便创建第三级(孙代)对象。 XSD 文件应如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="Parent">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="child" type="Child"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Child">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="grandChild" type="GrandChild"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GrandChild">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>关于本任务
如果已使用传统的“自顶向下”方法来设置业务对象数据,那么必须处理以下代码,以在孙代对象中设置数据之前指定子代和孙代对象:
DataObject parent = ...
DataObject child = parent.createDataObject("child");
DataObject grandchild = child.createDataObject("grandChild");
grandchild.setString("name", "Bob");您可以通过使用
setWithCreate 函数来同时定义孙代对象并设置其数据,而不必指定中间子对象,从而使用更有效的方法。 以下示例代码说明了如何完成此任务:DataObject parent = ...
parent.setString("child/grandchild/name", "Bob");结果
已设置了较低级别的业务对象数据,而不必引用中间级别的业务对象。 如果路径无效,那么会发生异常。