曝光台 注意防骗
网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者
消息的报头中添加了新的元素( # 1所示)。这个元素标识这个消息并存放在第一个节点中(当消
息在以后某个时候返回或是有一个消息队列。它还可以当作处理过程在该节点的一个入口)。消
息—包括附加信息—被发送到节点2,将会在报头加上更多的信息( # A B C所示)。接下来消
息到达位于节点3的贸易伙伴,将在报头加上第三套元素。现在每个节点都加上了一些关键信息,
这样无论消息在何处存储都可以标记消息,或当消息到达这个节点时执行一个进程。
下面说明在这个领域开始工作时一个可能的起始位置,虽然有许多工作,但还是尽量从各
个角度予以说明。
无论是本地信息或资源,附加信息可以是任何元素的逻辑集合。在下面的例子中,在资源
的生命周期中我们在每个节点(或贸易伙伴)加上E c h o元素,新的元素可能会加入到节点的处
理进程。这些入口有回调能力—每个元素有一个标识符表明哪个节点和进程加入到入口中。
E c h o元素仅仅在逻辑资源等级是可选的(例如对每个消息)并同其他元素无关。该元素并不用
来进行数据交换而是使特定的节点拥有进入一直存在的存储格式的入口机制—这意味着这些
元素仅同拥有者相关,而同其他节点或贸易伙伴无关(注意每个节点可以使用不同的元素名称)。
E c h o元素标识了资源的拥有者、源进程的版本号、本地资源和键值。附加的元素可以作为E c h o
元素的从属资源,使用E c h o I t e m同E c h o元素相关联。如果节点本身需要, E c h o I t e m的结构是以
树型加入到资源中。这里我们可以看到怎样使用E c h o I t e m和一个E c h o元素,这样每个资源可以
根据它的E c h o元素看到不同的处理进程。我们将在下面的例子中说明它:
程序清单1 2 - 2
E c h o元素将拥有者的I D作为元素内容。开放的I D元素包括的内容参见表1 2 - 2。
表1 2 - 2
属性全名含义
q q u a l i f i e r 同X 1 2类似的保留值,显示指定的授权I D
t t o k e n 包含一串信息用于节点进程,它是独立于拥有者的。这
个令牌包含一个字符串还可以包含索引号等,可以是一个
组织任何感兴趣的格式,用于选择一张表(树)和记录
(子树)
c c o n f i g u r a t i o n 显示进程的版本号和保存令牌中的存储信息,通常是一
个时间戳。确认信息可以在进程和存储升级时用来表示过
去的令牌
506使用XML 高级编程
下载
(2) 路由的例子
通过使用以上方法,我们看到E c h o元素是如何被表示的。下面的部分包含5个E c h o元素用于
一个资源。第一个是可以指定的最小值。描述( q = " 0 1 ")显示1 0 9 8 7 2 7 2 1是一个D U N S数(一个
在欧洲之外被D u n n和B r a d s t r e e t分配的数),拥有者将参照键值( A B C 3 5 3)作为令牌。
在处理这个资源时,将会有以下步骤:
• 系统检查是否有一个或多个E c h o元素其内容同它的描述值匹配。
• 是否不止一个值,查找q属性值找到同公司/进程匹配的E c h o元素。
• 使用t属性值从长期存储设备中获得需要处理的记录。
下面的例子演示的是节点拥有者将c属性作为一个时间戳或令牌时的情况。另外, U s e r项用
于定义同节点相关的特殊信息,它用在组织内部,为1 0 9 8 7 2 7 2 1。拥有者同时维护一个令牌锚
(anchor token),通常用于引用会话双方的原始消息。
程序清单1 2 - 3
第3、第4和第5个E c h o元素的例子提供了其他t属性的可能值。你可以看到,它显示了部分
数据资源队列,因为它是用于恢复原始记录的属性。其内容主要由节点拥有者指定:
程序清单1 2 - 4
这里你可以看到能够向消息处理程序添加入口的信息类型。看完报头,下面我们看看消息
的主体部分:
第12章电子商务和XML使用507 下载
2. 消息体
消息体中存放的是到达消息头指定的目的地时消息的主要内容,它可以是一个定单、一个
确认函、一些重要的信息或需要共享的销售数据等。消息体可以使用任何数量的现存X M L词汇
进行书写,也可以是为了特殊的任务而写入的自主的内容,你可以在第4章中获得如何模仿的信
息。
随着可以利用的X M L行业标准的不断增长,可能已经出现了适合你的需求的标准,或有同
你的需求相似的标准,这样可以以此为基础在其上加入自己的模式。但是如何找到适合自己需
求的那个标准呢?应从你的贸易伙伴开始。也许他们可以向你提供一个模式或建议你到一个We b
站点进行了解。他们的资源可能是参考了一个X M L容器(存有许多D T D和其他组件模式、代码
列表和脚本的站点),本章的后面将进行介绍。
(1) 使用现存的模式
记住定义一套适合E D I交易的词汇表是实现E D I系统时一项昂贵的任务。如果在你的问题领
域中已经存在一个词汇表,你应该对其进行仔细研究。这样节省的不仅是金钱,更重要的是可
以节省书写自己的X M L词汇表,开发这个词汇表的人已经花费了大量的精力研究什么信息需要
在交易的双方进行传输。你可以考虑直接采用这个行业标准或以此为基础。如果你仅仅准备在
现存的标准上建立自己的词汇表,应考虑是否复制它的功能或是否应该使用部分同你的命名空
间相似的标准部分(可以在第7章获得命名空间和模式的概念)。
在我们开始使用模式前,记住我们早先遇到的错误概念:
如果一个团体创建了一个标准定义允许我们所有人去读同样的页面,那么我们的系统是
可以互操作的。
我们说,E D I证明了情况并不是这样。E D I标准定义了交易的结构,企业并为此达成了协议
—通常是一个商业文档。该标准对交换的描述限制很少。为了在这个标准上进行贸易,必须
基于贸易伙伴的关系制定附加的特定用于交换的协议,定义使用的元素的子集和使用细节。
(2) 注册器和容器
有一些存有特定行业信息的注册器和容器供用户共享,它们在覆盖信息的宽度和数量上各
有不同。注册器仅仅包括D T D和模式,而容器包含更多的信息,如数据库模式、软件代码或规
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:
XML高级编程下(3)