第三章 Web Services和 Web Clients简介 - SOAP 标准.
本节列出了 Web 服务和 Web 客户端的基本标准和 WSDL 支持详细信息。
基本标准
Web 服务和客户端支持以下基本标准:
SOAP 1.1(see www.w3.org/TR/2000/NOT…), 包括编码格式。SOAP 1.2,包括第3节SOAP版本1.2第2部分中指定的编码格式:Adjuncts(www.w3.org/TR/soap12-p… in a new tab).MTOM(消息传输优化机制)1.0(www.w3.org/TR/soap12-m… in a new tab).WSDL 1.1. IRIS Web服务生成符合WS-I(Web服务互操作性组织)制定的基本配置文件1.0的WSDL文档。IRIS Web客户端适用于更通用的WSDL文档。UDDI版本1.0仅具有客户端访问权限(未提供存储库)。uddi.xml.org/- 根据带有附件的
SOAP规范,将附件作为多部分/相关MIME消息进行处理(www.w3.org/TR/SOAP-att… 1.2和SOAP 1.1支持带附件的SOAP`。 - 通过
HTTP 1.1或HTTP 1.0传输。 - 仅支持
UTF-8格式的Web客户端输出。
IRIS 中的 WSDL 支持
IRIS 不支持所有可能的 WSDL 文档。在客户端提供了更大的灵活性,因为经常需要创建与无法更改的特定 WSDL 一起使用的 Web 客户端。本节讨论支持的详细信息。
生成的 WSDL 文档
Web 服务生成的 WSDL 文档不包含标头。此外,可以在 IRIS 中创建的 Web 服务并不反映所有可能的变化。
请注意,SOAP 规范根本不需要 Web 服务来生成 WSDL。
使用 WSDL
IRIS SOAP 向导无法处理所有可能的 WSDL 文档。尤其:
- 它不支持
<fault>元素。也就是说,如果在绑定的<operation>元素中包含<fault>元素,则忽略<fault>元素。 - 对于响应消息,下列条件之一必须为真:
- 每个响应消息必须与相应的请求消息位于相同的名称空间中。
- 响应消息必须都位于彼此相同的名称空间中(可以与请求消息使用的名称空间不同)。
SOAP向导不处理WSDL的标头。
SOAP向导允许在WSDL中使用MIME绑定(为www.w3.org/TR/wsdl#_To…
MIME部分被忽略,WSDL的其余部分被处理。当基于包含MIME绑定的WSDL创建web服务或客户端时,必须添加明确的ObjectScript代码来支持MIME附件;这项任务超出了本文档的范围。
关于SAX解析器的要点
只要 IRIS接收到SOAP消息,就使用 SAX解析器。知道它的默认行为是很有用的。在其他任务中,解析器做以下工作:
- 它验证
XML文档是否格式良好。 - 它尝试使用给定的模式或
DTD验证文档。
这里需要记住的是,模式可以包含引用其他模式的<import>和<include>元素。例如:
<xsd:import namespace="target-namespace-of-the-importing-schema"
schemaLocation="uri-of-the-schema"/>
<xsd:include schemaLocation="uri-of-the-schema"/>
除非解析器可以使用这些其他模式,否则验证将失败。特别是对于WSDL文档,有时需要下载所有模式并编辑主模式以使用正确的位置。
- 它试图解析所有实体,包括所有外部实体。(其他
XML解析器也这样做。)这个过程可能很耗时,这取决于他们的位置。特别是,Xerces使用网络访问器来解析一些url,并且实现使用阻塞I/O。因此,没有超时,网络读取可以在错误条件下挂起,这在实践中很少见。
如果需要,可以创建自定义实体解析器;请参阅自定义SAX解析器的使用方式。