本部分概述了 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 元素。
<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 文档中的 Request 元素与 WebSphere Partner Gateway 中的文档流对应。典型的请求元素有:
下表显示了 cXML 请求文档中的元素和 WebSphere Partner Gateway 中的文档流定义之间的关系:
目标参与者发送 cXML 响应以向源参与者通知 cXML 请求的结果。因为有些请求的结果可能不包含任何数据,所以 Response 元素可以选择只包含 Status 元素。Response 元素也可以包含任何应用程序级别的数据。例如,在 PunchOut 过程中,在 PunchOutSetupResponse 元素中包含了应用程序级别的数据。 典型的 Response 元素有:
下表显示了 cXML 响应文档中的元素和 WebSphere Partner Gateway 中的文档流定义之间的关系:
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 中的文档流定义之间的关系:
区分单向消息与请求-响应文档的最简单方法是查看是否存在 Message 元素,而不是 Request 或 Response 元素。
Message 可以包含下列属性:
所有的 cXML 文档必须包含 Content-type 头。对于没有附件的 cXML 文档,将使用下列 Content-type 头:
cXML 协议利用 MIME 支持附加外部文件。例如,采购人员经常要用相关的备忘录、图或传真来阐明采购 请求。对于包含附件的 cXML 文档,必须使用以下列表中所示的 Content-type 头之一:
boundary 元素是任何唯一的文本,用于将 MIME 消息的正文的有效内容部分分开。请参阅 www.cxml.org 上的“cXML User Guide”以获取更多信息。
WebSphere Partner Gateway 支持下列 cXML 文档流定义交互:
<cXML> <Response> <Status code="200" text="OK"/> </Response> </cXML> <cXML> <Response> <Status code="200" text="OK"/> <ProfileResponse> </Response> </cXML>
版本号仅供参考。实际的协议版本从 cXML 文档中的 DTD 版本得出。
要创建交互,请使用下列过程。