下面的示例显示了支持会话的方法:
- 要开始会话,可将 soap 中的 beginsession 标头添加到来自客户端的出站 xml for analysis 方法调用中。值区域最初为空白,因为此时尚不知道会话 id。
<soap-env:envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" soap-env:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/"> <soap-env:header> <xa:beginsession xmlns:xa="urn:schemas-microsoft-com:xml-analysis" xsi:type="xsd:int" mustunderstand="1"/> </soap-env:header> <soap-env:body> ...<!-- 此处是 discover 或 execute 调用。--> </soap-env:body> </soap-env:envelope> - 来自提供程序的 soap 响应消息使用 xml for analysis 标头标记 <sessionid> 在返回标头区域中包括会话 id 。
<soap-env:header> <xa:session xmlns:xa="urn:schemas-microsoft-com:xml-analysis" sessionid="581"/> </soap-env:header> - 对于会话中的每次方法调用,必须添加 session 标头,它包含提供程序返回的会话 id。
<soap-env:header> <xa:session xmlns:xa="urn:schemas-microsoft-com:xml-analysis" mustunderstand="1" sessionid="581"/> </soap-env:header> - 当会话完成后,将使用
<endsession>标记,它包含相关会话 id 的值。<soap-env:header> <xa:endsession xmlns:xa="urn:schemas-microsoft-com:xml-analysis" xsi:type="xsd:int" mustunderstand="1" sessionid="581"/> </soap-env:header>
会话 id 并不保证会话仍然有效。如果会话过期(例如会话超时或连接丢失),提供程序可以选择结束或回退该会话的操作。这样,客户端对会话 id 的所有后继方法调用都将失败,并报告表示会话无效的错误。客户端将处理此情况并且必须准备从头开始重新发送会话方法调用。
将 xml for analysis 用于数据挖掘
xml for analysis 的 execute 方法支持数据挖掘命令的执行。数据挖掘命令支持与提供程序相关。如果结果以 mddataset 或 tabular 形式返回,也可以通过 execute 接口来支持数据挖掘命令。要支持 tabular 结果,至少需要数据挖掘提供程序。
例如,通过 xml for analysis api 访问 ole db for data mining 信息与从关系数据源获得数据存在很大的差异。ole db for data mining 命令的结果是平面行集或分层排列的平面行集。对于 ole db for data mining 命令,format 属性应设置为 tabular。
xml for analysis 提供程序并不一定支持 ole db for data mining 特定的命令。支持 ole db for data mining 的提供程序将通过将 providertype 中的数组元素之一设置为 dmp 来标识它们自己。
第二部分 – 附录
本节包括其它主题和相关信息,以帮助您理解和实现此规范。
附录 a:实现注意事项
本附录讨论实现的注意事项。
xml for analysis 实现过程分步说明
为了更好地说明如何使用 xml for analysis api,本部分提供了一个简单的客户端/服务器交互的分步说明。它包括实现如何获得数据源列表。
该分步说明中的步骤将详细说明客户端如何与服务器进行通信,以获得一个数据源列表并使用其中一个数据源来运行 olap 查询。
下面的批注指示哪些步骤表示规范,哪些步骤是实现的示例:
- (i) 该步骤是实现的示例。
- (s) 所显示的步骤是按此规范的规定实现的一个项目。
查找一个 xml for analysis 服务
- (i) 客户端应用程序发现一个支持 web 服务的服务器 url。通过浏览通用描述、发现和集成 (universal description, discovery, and integration, uddi) 业务登记表即可找到该 url。
- (i) 客户端向该 url 发送请求,以查明它是否支持 xml for analysis web 服务(如使用发现协议 (discorery protocol, disco))。
- (i) disco 返回 xml for analysis web 服务的 wsdl 文件的 url(如 xmlanalysis.wsdl)。
- (i) 客户端发送对 wsdl 文件的请求。
- (i) web 服务器发回 xmlanalysis.wsdl,它定义支持的方法:discover 和 execute。
- (i) 客户端通过 wsdl 确认客户端和服务器都使用相同的方法。