业务对象高级属性

业务对象的高级属性使您能够定制业务对象的序列化 XML 表示。当业务对象属于公开的 Web Service 时,外部系统将使用此 XML 表示。

在您创建业务对象或导入包含业务对象的 WSDL 文件时,将使用适当的值自动创建用于序列化目的的高级属性。 建议将这些序列化值保持不变。仅当您是需要覆盖值的高级用户时才会更改值。您应该非常熟悉 W3C 的 XML 模式定义的所有标准 XML 元素。 您还应该阅读“Web Service 兼容性”主题以及“针对业务对象的 XSD 生成模式”主题,本主题结尾处提供了这些主题的链接。这些主题指定了适用于与此产品交互的以及在此产品中交互的 XML 模式的限制。

更改将仅影响此特定业务对象。如果您有一个含有 100 个业务对象的流程应用程序并且想要覆盖某个元素(例如,所有业务对象的 XML 表示中的目标名称空间),那么您将需要执行 100 处更改。

通过执行以下操作可完成该定制:选择并更改属性,保存业务对象的该配置,然后单击查看 XML 模式以查看用于描述业务对象 XML 表示的 XML 模式定义 (XSD)。在本部分中,每个属性都有描述,一些属性包含您可使用定制进行更改的值示例, 从而使您了解使用定制工具的行为。

应测试对序列化值进行的任何更改。例如,如果在入站或出站 Web Service 中使用业务对象,这意味着在更改之后要测试这些 Web Service。如果使用的是 Integration Designer 并且在 Advanced Integration Service 中使用业务对象,那么应测试 Advanced Integration Service。

匿名列表类型

此属性设置包装程序的类型是指定的还是匿名的。 缺省值为 false(指定的类型)。此属性仅在参数为列表且包装列表属性为 true 时可用。

匿名类型

可使用多组已命名类型(例如,InvoiceType)来构建模式。 然后,可声明引用这些类型的元素,例如 invoiceCanadian。但是,如果只需要引用某个类型一次,那么存在相当大的编码开销。对于单次引用的这些情况,将使用匿名类型。

要指定匿名类型的值,请选择匿名类型,然后选择 truefalse。 缺省值为 false。匿名类型可导致 Web Services hints and tips: avoid anonymous types 中讨论的难题。 如果您已阅读“针对业务对象的 XSD 生成模式”主题,那么还会了解到生成器并不支持 true 值。 保存您所作的工作。单击查看 XML 模式。您的输出应该类似于以下样本。

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://EH" targetNamespace=http://EH" 
			elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="employee">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="employeeNumber" nillable="false" type="xs:string" minOccurs="0" maxOccurs="1" />
				<xs:element name="firstName" nillable="false" type="xs:string" minOccurs="0" maxOccurs="1" />
				<xs:element name="lastName" nillable="false" type="xs:string" minOccurs="0" maxOccurs="1" />
			</xs:sequence>
		</xs:complexType>
		</xs:element>
</xs:schema>

元素名称

如果将匿名类型属性设置为 true,该属性会把此匿名类型放置到指定名称的元素下面。

除非确实需要做出更改,否则请使用缺省值。

元素名称空间

此属性设置了容器元素的名称空间。

除非确实需要做出更改,否则请使用缺省值。

从 XML 中排除

在大多数情况下,都会将此设置保留为缺省值 false(这包括 XML 表示中的业务对象或参数)。 但是,类型可能定义了一些您不希望序列化为 XML 表示的实例字段。例如,由于引用内部运行流程而在 XML 中无等效项的实例字段。在了解到 Web Service 可接受部分数据并自行计算值,从而通过减少传输的数据量来提高性能时,您还可能不希望序列化大量数据。

要从 XML 表示中排除某个业务对象或参数,请选择从 XML 排除,然后选择 true。 保存您所作的工作。单击查看 XML 模式

例如,如果使用了匿名类型属性中的示例并排除了 employeeNumber,输出则如下所示:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://EH" targetNamespace=http://EH"
			elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="employee">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="firstName" nillable="false" type="xs:string" minOccurs="0" maxOccurs="1" />
				<xs:element name="lastName" nillable="false" type="xs:string" minOccurs="0" maxOccurs="1" />
			</xs:sequence>
		</xs:complexType>
		</xs:element>
</xs:schema>

列表项名称

此属性设置了包装列表项的名称。此属性仅在参数为列表且包装列表属性为 true 时可用。

除非确实需要做出更改,否则请使用缺省值。缺省值为列表元素类型的名称。

列表类型名称

此属性设置了封装包装列表的复杂类型的名称。 因此,此属性仅对非匿名的包装列表有效。

除非确实需要做出更改,否则请使用缺省值。

最大出现次数

此属性设置了参数的最大出现次数。 缺省值为 1。此属性与 XML 模式中的 maxOccurs 相对应。

除非确实需要做出更改,否则请使用缺省值。

最小出现次数

此属性设置了参数的最小出现次数。 缺省值为 0。此属性与 XML 模式中的 minOccurs 相对应。

除非确实需要做出更改,否则请使用缺省值。

名称

此属性覆盖了指定名称的序列化参数的名称。缺省值为参数名称。此属性与 XML 模式中的 name 属性相对应。

除非确实需要做出更改,否则请使用缺省值。

名称空间

如果设置了业务对象的名称空间,那么此属性会更改目标名称空间。目标名称空间明确定义了属于此名称空间实例的元素。 如果导入了 WSDL 文件并且在导入时更改了业务对象的目标名称空间,那么您可能想要更改目标名称空间。如果设置了参数属性,那么它将覆盖该参数的序列化元素名称空间。

要重命名目标名称空间,请选择名称空间,并输入您期望的目标名称空间。例如:http://www.mycorporation.com/employees。 保存您所作的工作。单击查看 XML 模式。您的输出应该类似于以下样本。

<xs:schema targetNamespace="http://www.mycorporation.com/employees"
		elementFormDefault="qualified" attributeFormDefault="unqualified">
		<xs:complexType name="employee">
		<xs:sequence>
						<xs:element name="employeeNumber" type="xs:int" minOccurs="0"
								maxOccurs="1" nillable="false" />
			<xs:element name="firstName" type="xs:string" minOccurs="0"
								maxOccurs="1" nillable="false" />
			<xs:element name="lastName" type="xs:string" minOccurs="0"
								maxOccurs="1" nillable="false" />
</xs:sequence>
	</xs:complexType>
		<xs:element name="employee" type="tns:employee" />
</xs:schema>

支持 Nill

此属性确定参数是否可有空值。

除非确实需要做出更改,否则请使用缺省值。

节点类型

XML 文档中的节点可定义为元素或属性。可在 Principles of XML design: When to use elements versus attributes 中找到关于这些类型的讨论。在大多数情况下,将使用缺省元素类型,因此您无需明确对其进行设置。但是,您可以设置它以使用某个属性。

要将类型更改为属性,请选择节点类型,然后选择属性。 保存您所作的工作。单击查看 XML 模式。您的输出应该类似于以下样本。

<xs:schema targetNamespace="http://EH" elementFormDefault="qualified"
	attributeFormDefault="unqualified">
		<xs:complexType name="employee">
		<xs:sequence>
						<xs:element name="firstName" type="xs:string" minOccurs="0"
								maxOccurs="1" nillable="false" />
			<xs:element name="lastName" type="xs:string" minOccurs="0"
								maxOccurs="1" nillable="false" />
</xs:sequence>
				<xs:attribute name="employeeNumber" type="xs:int" />
	</xs:complexType>
		<xs:element name="employee" type="tns:employee" />
</xs:schema>

顺序

“顺序”将明确设置复杂类型元素的顺序。通常,会将业务对象 XML 表示中的顺序保持为与业务对象编辑器中完全相同。但是,如果外部 Web Service 更改了顺序并需要元素按特定方式显示,您可能想要更改顺序。

要更改复杂类型元素的顺序,请选择每个元素并在顺序字段中添加一个数字,以指定 XML 表示中所需的顺序。例如,假定“员工”复杂类型的顺序为 employeeNumber、firstName、lastName,并且您想要更改该顺序以采用 Web Service 顺序:lastName、firstName、employeeNumber。您应将 employeeNumber 设置为 2,将 firstName 设置为 1,并将 lastName 设置为 0。保存您的工作。 单击查看 XML 模式。您的输出应该类似于以下样本。

<xs:schema targetNamespace="http://EH" elementFormDefault="qualified"
	attributeFormDefault="unqualified">
		<xs:complexType name="employee">
		<xs:sequence>
						<xs:element name="lastName" type="xs:string" minOccurs="0"
								maxOccurs="1" nillable="false" />
			<xs:element name="firstName" type="xs:string" minOccurs="0"
								maxOccurs="1" nillable="false" />
			<xs:element name="employeeNumber" type="xs:int" minOccurs="0"
								maxOccurs="1" nillable="false" />
</xs:sequence>
	</xs:complexType>
		<xs:element name="employee" type="tns:employee" />
</xs:schema>

时区

此属性设置了序列化日期参数时使用的时区。此属性在 WSDL 生成或模式创建中不可用,但是可用于显示日期和时间值。缺省值为 CLIENT。其他有效值为 SERVER 和 UTC。

除非确实需要做出更改,否则请使用缺省值。

类型名称

此属性设置了业务对象或参数的限定类型名称。

除非确实需要做出更改,否则请使用缺省值。

类型名称空间

此属性覆盖了指定名称空间的序列化 XSD 类型的类型名称空间。

除非确实需要做出更改,否则请使用缺省值。

包装列表

此属性确定了是否创建一个包含列表的数组包装程序类型。缺省值为 false,表示未包装此列表。列表是一个数组,在将列表选作属性时,会指定此列表。如果您要封装该数组,可以使用该字段。包装程序类型可能匿名,并且可能会覆盖列表项的名称。如果您未选择变量的列表,那么将禁用该字段和其他在名称中包含列表的字段。