解析Web接口描述语言WSDL(6)
来源:asp之家 时间:2010-04-06 18:14:00
3、 MIME 绑定
WSDL包含了以某种MIME格式将抽象类型与具体消息绑定在一起的方式。为下列MIME类型定义了绑定:
multipart/related
text/XML
application/x-www-form-urlencoded (此格式用于替代HTML中的表单)
其它 ( 由MIME类型字符串指定)
对MIME类型的定义的工作量很大,且是发展的,因此为每种MIME类型费力地定义XML语法不是WSDL的目标。在需要时,不排除增加额外的语法以定义另外的MIME类型。如果MIME类型字符串提供的信息足够描述内容,那么就可以使用下面定义的mime元素。
MIME绑定使用下列元素扩展WSDL:(注意黑体标注)
<mime:content part="nmtoken"? type="string"?/>…1
<mime:multipartRelated>…2
<mime:part> * …3
<-- mime element -->
</mime:part>
</mime:multipartRelated>
<mime:mimeXMLpart="nmtoken"?/> …4
1)mime:content
为了避免为每个MIME格式定义新的元素,如果不需要传送格式(而不是MIME类型字符串)的附加信息,就可以使用mime:content元素。
<mime:content part="nmtoken"? type="string"?/>
属性part用于指定消息part的名字。如果只有一个part,那么它的属性是可选的。属性type包含MIME类型的字符串。类型的值是由斜杠(/),每个值可以是一个通配符(*)。如果没有指定类型属性,就表示所有的MIME类型是可选的。
如果返回格式是XML,但模式事先并不知道,通用mime元素可用于指示text/XML:
<mime:content type="text/XML"/>
通配符可用于指定某类MIME类型,对所有文本类型如下例所示:
<mime:content type="text/*"/>
下面两个例子都指定了所有的mime类型:
<mime:content type="*/*"/>
<mime:content/>
2)mime:multipartRelated
multipart/related MIME类型任意的MIME格式化部分聚集为一个使用MIME 类型"multipart/related"的消息。
3)mime:part
元素mime:part描述了multipart/related消息的各个部分。在mime:part元素中出现的MIME元素用于为各部分指定具体的MIME类型。如果在一个mime:part元素中出现多个MIME元素,那么它们是可相互替换的。
4)mime:mimeXML为了指定与SOAP不兼容(没有SOAP封装)的XML负荷,但存在一个特殊的模式,就可以使用mime:mimeXml元素指定具体的模式。属性part引用定义了根XML元素具体模式的消息part。如果消息只有一个part,那么就可以忽略part属性。part使用element属性为单个part引用具体模式,或者使用type 属性为组合part进行引用。
5)soap:body
当SOAP请求使用MIME绑定时,将元素soap:body作为MIME元素使用是合法的。这指出内容的类型是"text/XML",并且存在SOAP封装。