cXML 文档

本部分概述了 cXML 支持,并介绍了如何为 cXML 交换创建文档流定义。

概述

WebSphere Partner Gateway “文档管理器”通过 XML 文档的根元素名称(cXML)标识 cXML 文档,并通过 cXML DOCTYPE(DTD)标识版本。例如,下面的 DOCTYPE 针对 cXML V1.2.009:

<!DOCTYPE cXML SYSTEM "http://xml.cXML.org/schemas/cXML/1.2.009/cXML.dtd"> 

“文档管理器”对 cXML 文档执行 DTD 验证;然而,WebSphere Partner Gateway 不提供 cXML DTD。您可以从 www.cxml.org 下载它们,然后通过“社区控制台”中的验证映射模块将它们上载到 WebSphere Partner Gateway。上载 DTD 之后,将它与 cXML 文档流关联起来。请参 阅将映射与文档流定义关联以获取将 DTD 与 cXML 文档流关联的更多信息。

“文档管理器”使用了 cXML 根元素的 payloadID 和 timestamp 两个属性来进行文档管理。cXML payloadID 和 timestamp 用作文档的标识号和文档的时间戳记。 可以在“社区控制台”上查看这两个属性,以便进行文档管理。

cXML 头中的 From 和 To 元素包含用于文档路由和认证的 Credential 元素。下面的示例显示了 分别作为 cXML 文档的源和目的地的 From 和 To 元素。

注: 在此处和本书中,所有 DUNS 号仅作为示例。
<Header>
 <From>
 
             <Credential domain="AcmeUserId">
                 <Identity>admin@acme.com</Identity>
             </Credential>
             <Credential domain="DUNS">
                 <Identity>130313038</Identity>
             </Credential>
 </From
 <To>
             <Credential domain="DUNS">
                 <Identity>987654321</Identity>
             </Credential>
             <Credential domain="IBMUserId">
                 <Identity>test@ibm.com</Identity>
             </Credential>
 </To>

如果使用多个 credential 元素,则“文档管理器”将以 DUNS 编号作为企业标识来进行路由和认证。在没有给出 DUNS 编号的情况下,则使用第一个 Credential。

WebSphere Partner Gateway 不使用 Sender 元素中的信息。

在同步事务中,cXML 响应文档不使用 From 和 To 头。 响应文档通过请求文档建立的同一 HTTP 连接发送。

cXML 文档类型

cXML 文档有三种类型:请求、响应或消息。

请求

cXML 请求有多种类型。cXML 文档中的 Request 元素与 WebSphere Partner Gateway 中的文档流对应。典型的请求元素有:

下表显示了 cXML 请求文档中的元素和 WebSphere Partner Gateway 中的文档流定义之间的关系:

cXML 元素
文档流定义
cXML DOCTYPE
协议
DTD 版本
协议版本
请求(类型)
例如,OrderRequest
文档流
响应

目标参与者发送 cXML 响应以向源参与者通知 cXML 请求的结果。因为有些请求的结果可能不包含任何数据,所以 Response 元素可以选择只包含 Status 元素。Response 元素也可以包含任何应用程序级别的数据。例如,在 PunchOut 过程中,在 PunchOutSetupResponse 元素中包含了应用程序级别的数据。 典型的 Response 元素有:

下表显示了 cXML 响应文档中的元素和 WebSphere Partner Gateway 中的文档流定义之间的关系:

cXML 元素
文档流定义
cXML DOCTYPE
协议
DTD 版本
协议版本
响应(类型)
例如,ProfileResponse
文档流
消息

cXML 消息在 cXML Message 元素中包含了 WebSphere Partner Gateway 文档流信息。 它可以包含可选的 Status 元素(与 Response 元素中的相同)。它将用于响应请求消息的消息中。

消息的内容是根据用户的业务需求定制的。在 <Message> 元素子元素与在 WebSphere Partner Gateway 中创建的文档对应。在下面的示例中,SubscriptionChangeMessage 是文档流:

<Message>
 <SubscriptionChangeMessage type="new">
            <Subscription>
                 <InternalID>1234</InternalID>
                 <Name xml:lang="en-US">Q2 Prices</Name>
                 <Changetime>1999-03-12T18:39:09-08:00</Changetime>
                 <SupplierID domain="DUNS">942888711</SupplierID>
                 <Format version="2.1">CIF</Format>
             </Subscription>
 </SubscriptionChangeMessage>
 </Message>

下表显示了 cXML 消息中的元素和 WebSphere Partner Gateway 中的文档流定义之间的关系:

cXML 元素
文档流定义
cXML DOCTYPE
协议
DTD 版本
协议版本
消息
文档流

区分单向消息与请求-响应文档的最简单方法是查看是否存在 Message 元素,而不是 Request 或 Response 元素。

Message 可以包含下列属性:

Content-type 头和附加文档

所有的 cXML 文档必须包含 Content-type 头。对于没有附件的 cXML 文档,将使用下列 Content-type 头:

cXML 协议利用 MIME 支持附加外部文件。例如,采购人员经常要用相关的备忘录、图或传真来阐明采购 请求。对于包含附件的 cXML 文档,必须使用以下列表中所示的 Content-type 头之一:

boundary 元素是任何唯一的文本,用于将 MIME 消息的正文的有效内容部分分开。请参阅 www.cxml.org 上的“cXML User Guide”以获取更多信息。

有效的 cXML 交互

WebSphere Partner Gateway 支持下列 cXML 文档流定义交互:

创建文档流定义

请使用以下过程,为 cXML 文档创建新的文档流定义。

注: 您必须确保在创建 cXML 文档流定义之前定义了正确的 cXML 版本。缺省版本是 V1.2.009。

  1. 单击中心管理 > 中心配置 > 文档流定义
  2. 单击创建文档流定义。这样会显示“创建文档流定义”页面。
  3. 为文档流类型选择文档流
  4. 根据文档类型,执行下列任务之一:
  5. 对于 Version,输入 1.0

    版本号仅供参考。实际的协议版本从 cXML 文档中的 DTD 版本得出。

  6. 输入描述(可选)。
  7. 对于文档级,选择
  8. 对于状态,选择启用
  9. 对于所有的可视性属性,选择
  10. 单击包:无文件夹以展开包选择选项。
  11. 选择协议:cXML (1.2.009): cXML
  12. 单击保存

创建交互

创建文档流定义之后,设置 cXML 文档的交互。

要创建交互,请使用下列过程。

  1. 单击中心管理 > 中心配置 > 文档流定义
  2. 单击管理交互
  3. 单击创建交互
  4. 如果 cXML 文档是源,则在下,展开包:无协议:cXML,然后选择文档流:<document _flow>。 如果 cXML 文档是目标,则展开包:无协议:cXML, 然后在目标列中选择文档流:<document_flow>
  5. 展开交互的另一半(将被转换成 cXML 的文档或将从 cXML 转换的文档)的源或目标列,然后展开其包和协议并选择其文档流。
  6. 从页面底部的操作列表选择传递。(传递是 cXML 文档支持的唯一有效选项。)

Copyright IBM Corp. 2003, 2005