4.5 操作数据

驱动程序 Shim 对基于 <operation-data> 元素的订购者命令执行特殊处理。在订购者通道,<operation-data> 元素可以添加到命令中以用于两个目的。

  1. 指定期望在命令结果中包含的 XML 数据。这样,便可以将命令与其生成的响应相匹配,这对于创建关联非常有用。
  2. 逐个命令覆盖默认订购者选项。

Section 1.0, 概述中所讨论的,<operation-data> 元素可以添加到订购者通道的某个策略的命令中。驱动程序 Shim 将在操作数据发送到应用程序之前将其从命令中去除,并将 <operation-data> 元素(和所有子元素)恢复到结果响应中。如果需要,规则和样式表可以访问结果中的操作数据元素。

4.5.1 使用操作数据指定在结果中返回 XML

SOAP 驱动程序的样本配置使用 <operation-data> 元素跟踪命令的标识信息,从而可以识别结果并正确地指派关联。检查这些样本以获得有关如何使用 <operation-data> 元素的细节。

当响应之后恢复 <operation-data> 元素时,该元素将被追加为根节点的子元素。通过向 <operation-data> 元素提供一个或多个 parent-node-n 特性可以改变这种情况,其中 n 是从 1 开始并按每个要提供的父限定词递增的数字。驱动程序 Shim 查找 parent-node-n 特性。找到后,将检查该特性以确定是否存在命名节点。如果找到节点,那么将其用作响应中 <operation-data> 元素的父节点。

4.5.2 使用操作数据覆盖默认订购者选项

可以采用两种方式覆盖默认的订购者命令选项。

  1. 在配置中创建多个订购者选项集(称为连接),并使用 <operation-data> 元素指定用于当前命令的连接集。
  2. 指定用于覆盖当前命令的特定选项,如 URL、方法或 SOAP 操作。

创建和使用多个订购者选项集(连接)

使用 <operation-data> 元素覆盖默认订购者连接参数:

  1. 编辑驱动程序配置的订购者设置部分。

  2. 使用 iManager 的 XML 编辑功能,查找以短线和数字 1 结尾(如 subURL-1)的每个订购者设置,然后复制它,并使数字递增。

    例如:subURL-2

  3. 将新设置的值编辑为希望用于第二个连接的值。

    可以采用这种方式配置任意数量的连接,只要使用的数字不间断依次递增即可。

  4. 将特性添加到称为 connection<operation-data> 元素,然后为其提供要使用的连接编号的值。

    例如:

    <operation-data connection="2"> ...(other operation-data elements) </operation-data>
    

覆盖单个订购者选项

无需使用连接概念来覆盖多个订购者选项,只需直接使用 <operation-data> 元素的特性便可仅覆盖 URL、HTTP 方法或 SOAP 操作值。下表列出了可以使用的特性及其要覆盖的订购者选项。

Table 4-1 用于覆盖订购者选项的特性

<operation-data> 特性

被覆盖的订购者选项

说明

url

subURL-1

这是万维网服务或 HTTP 应用程序的 URL(或 URI)。如果应用程序具有一个用于添加用户的万维网服务和另一个用于删除用户的万维网服务,覆盖 URL 将会非常有用。

方法

subHttpMethod-1

默认情况下为 POST,但也可以根据需要设置为 RFC 2616 第 9 部分中定义的其它方法。

SOAP 操作

带有密钥《SOAPAction》的 HTTP 请求标题字段

对 DSML 和 SPML 样本而言,该值始终是 #batchRequest。但是,根据所使用的命令,某些万维网服务需要更改该值。

示例:

<operation-data url="http://137.66.10.13:18180/soap"> ...(other operation-data elements if required) </operation-data>

<operation-data method="GET"> ...(other operation-data elements if required) </operation-data>

<operation-data soap-action="addUser"> ...(other operation-data elements if required) </operation-data>