曝光台 注意防骗
网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者
们将做简要介绍。
在这个部分看一个实际的例子是很有用的,先了解c X M L文档看起来是一个怎样的模式,接
下来将解释出现在文档中的概念。一个c X M L文档的实例会如下所示,它展示了一个消息(在
< R e q u e s t > 元素中),通过p a y l o a d I D 唯一定义,从s t e v e n @ s o m e w h e r e . c o m发送,由
d o n n a @ a n o t h e r p l a c e . c o m和kod@ anotherplace.com接收。
程序清单1 2 - 2 4
让我们看看这个文档的重要部分以及它是如何满足c X M L规范的。
1. cXML信封
c X M L信封是一个c X M L实例必须的部分,它封装报头和主体信息以创建一个唯一的根
(r o o t)元素—在c X M L中是< cXML >。C X M L根元素的D T D表示为:
536使用XML 高级编程
下载
程序清单1 2 - 2 5
在c X M L根元素中有三个属性可以使用(参见表1 2 - 3)。
表1 2 - 3
属性描述值
Ve r s i o n c X M L协议的版本状态。在本书的写作时为1 . 0 “ 1 . 0 ”
P a y l o a d I D 唯一的定义符,基本目的是能够在需要时定义Datetime.process id.random number@hostname
和跟踪消息。建议使用
t i m e s t a m p 该属性以I S O 8 6 0 1格式表示消息发送时的日期Y Y Y Y- M M - D D T h h : m m : s s T Z D
和时间。这意味着我们的时间必须符合该格式
t i m e s t a m p按下列方式读取:
Y Y Y Y =四位数字表示的年份
M M =两位数字表示的月份( 0 1 = 1月,等等)
D D =两位数字表示的月中的日期( 0 1 ~ 3 1)
h h =两位数字表示的小时( 0 0 ~ 2 3)(不使用A M / P M)
mm =两位数字表示的分钟( 0 0 ~ 5 9)
s s =两位数字表示的秒(0 0 ~ 5 9)
T Z D =时区描述
时区描述的值如下所示:
Z:表示为U T C(协调的通用时间),Z必须大写。
+ h h : m m:表示本地时间比U T C快h h小时m m分钟。
- hh:mm:表示本地时间比U T C慢h h小时m m分钟。
更多的关于ISO8601的信息请浏览:
http://www.w3.org/TR/PR-html40/types.html#h-6.11
http://www.saq qara.demon.co.uk/datefmt.htm
在上面的例子中,已经定义了根标签:
上面文档的实例是1 9 9 9 年1 0月1 日,进程I D是8 2 6 3 ,随机数是8 7 2 3 4 4 ,在主机
s o m e w h e r e . c o m上进行的处理。
2. 报头部分
第12章电子商务和XML使用537 下载
如上实例所示,报头部分必须包括三个重要的成分。这三个部分是:
• From部分
• To部分
• Sender部分
其D T D描述如下:
程序清单1 2 - 2 6
注意整个报头被封装在元素信封( c X M L元素)中,它包含一些子元素以描述文档的传输。
我们现在将看看这些子元素在c X M L文档中的角色。
3. From
F r o m元素如同电子邮件中的F r o m一样,它简单定义了请求的来源。可能包含一个或多个
C r e d e n t i a l元素以允许请求者定义自己。
关于F r o m元素的例子描述了用户,其电子邮件地址是s t e v e n @ s o m e w h e r e . c o m,他的域I D是
S o m e U s e r I D F o r D o m a i n,如下所示:
程序清单1 2 - 2 7
我们将在后面对C r e d e n t i a l元素进行简短介绍。
4. To
同使用F r o m元素描述消息的来源类似,使用To元素描述请求接受者的信息。在我们的例子
中,定义了两个域I D以及其电子邮件地址以定义目的用户。
程序清单1 2 - 2 8
5. Sender
S e n d e r元素在使用c X M L实例进行授权传输中起到十分重要的作用,它是在报文通过系统时
538使用XML 高级编程
下载
报头中唯一改变的元素。通常,它同F r o m元素类似,虽然在S e n d e r元素中通常包括带有授权信
息的C r e d e n t i a l元素以定义发送者。S e n d e r元素通常包含授权信息,它也是在c X M L消息路由通过
系统时唯一会改变的元素。
在我们的例子中,有一个具有S o m e U s e r I D F o r D o m a i n域I D的用户,而s t e v e n @ s o m e w h e r e . c o m
作为实例中发送者的定义。
程序清单1 2 - 2 9
注意在我们的例子中具有C r e d e n t i a l元素,我们使用I d e n t i t y标记来包含发送者的电子邮件地
址,同时使用D i g i t a l S i g n a t u r e元素作为类似的口令以使系统具有认证机制。除了D i g i t a l S i g n a t u r e
方法,S h a r e S e c r e t元素也可以在发送方具有用户名/口令时使用,而H T T P连接那一端的请求响应
者应该识别该内容。
注意,我们在S e n d e r元素中还使用了一个U s e r A g e n t元素—我们将在下面解释这个元素。
6. Credential
C r e d e n t i a l元素用于允许用户使用同S M T P协议中的F r o m域相同的方式定义他自己,其具有
一个叫做d o m a i n的属性允许我们将这个实例同特定的域发送者关联。如果需要,可能使用不止
一个的C r e d e n t i a l元素以定义发送者,这样允许请求者使用多种方式定义自己(同S M T P和X . 4 0 0
协议中电子邮件地址类似)。
下面是在F r o m元素中使用的C r e d e n t i a l元素的D T D描述:
程序清单1 2 - 3 0
上面的D T D部分对c X M L报头中的F r o m元素来说通常是足够了。
但是,对于S e n d e r元素,它通常包括一些授权信息和一些用户信息。这时对于C r e d e n t i a l元
素的D T D描述如下:
程序清单1 2 - 3 1
第12章电子商务和XML使用539 下载
D i g i t a l S i g n a t u r e有两个属性,参见表1 2 - 4。
表1 2 - 4
属性描述值
t y p e 数字签名的类型,建议使用PK7 self-contained 建议:
PK7 self-contained
也可为其他值
e n c o d i n g 如何在H T T P中对签名进行编码。缺省是在We b 缺省:
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:
XML高级编程下(14)