[转帖]在Web Services XML应用程序中,如何运用DataWindow?
DataWindow在Web Services或XML应用程序中,可运用的方式如下: <p>PowerBuilder 9.0可以从资料储存体及DataWindow对象中加载和载出XML,加载的方式可以是从XML文件、字符串,甚或是剪贴板。使用者可定义XML样板(Template)对象,以确认原始资料在XML主要项目中重复运用的逻辑架构,样板可以加载与DataWindow字段定义不同的资料、纲目定义的资料,或加载属性的值。</p><p><br/>PowerBuilder延伸的类别(classes)提供对象和连结XML与SOAP的程序接口,PowerBuilder 9.0企业版的PBDOM (PowerBuilder implementation of the Document Object Model)让使用者能读取、编写及运用标准格式的XML,SoapConnection与SoapException类别提供建立Web Services代理程序与例外处理。 </p><p><br/>XMLParseFile和XMLParseString功能协助确认XML格式,并指定DTD或纲目验证其正确性。 若是综合运用这些功能,则就可以完成:<br/></p><p>* 在一个应用程序设计编码事件,载出选定的资料值或整个DataWindow对象的内容至一个结构化的XML文件,这一个XML文件的结构可以客制成其它内、外部应用程序、处理程序或系统来使用。<br/></p><p>* 在一个使用DataStore对象处理服务端数据库或客户端DataWindow对象中间层管理的类别使用者对象中增加一个方法(method),此方法可以载出资料至XML,为其它不同的组件或子系统所用,如一个EJB组件或Web Service。举例来说,使用者可用PowerBuilder呼叫启用Web Service,先透过PBDOM处理这个响应,然后使用ImportString功能将XML结果加载一个DataWindow对象,及PBDOM;相同地,也可以从DataWindow撷取XML,及用PBDOM定义或运用XML文件。</p> 我想知道BS里面如何访问客户端本地DOM文件 <p>最好有个例子 </p> <p>这是我实际做过的一个调用web service服务的过程</p><p>一、调用web service</p><p>SoapConnection lsc_Soapconn <br/>string ls_soapResponse,ls_para_in //为xml字串变量,第一个是返回值,第二个是要传进的函数参数<br/>long ll_ret <br/> test_ws02zzjfjkserver proxy_obj //定义一个代理实例<br/>ll_ret=-11 </p><p>//串行化一个xml字符串向web service的服务提供参数<br/>ls_para_inn="<?xml version=~"1.0~" encoding=~"UTF-8~"?><DBSET><ROW><COL NAME=~"HH~">6070000324</COL><COL NAME=~"CXMM~">02</COL></ROW></DBSET>"</p><p> lsc_Soapconn = create SoapConnection //建立与web service的一个连接 <br/> try<br/> ll_ret = lsc_Soapconn.CreateInstance(proxy_obj, "test_ws02zzjfjkserver") <br/> if ll_ret<>0 then <br/> messagebox("提示","创建实例失败,请检查代理对象是否正确!") <br/> return <br/> else<br/> ls_soapResponse=proxy_obj.uservaliditychk(ls_para_inn)//调用web service上的功能<br/> MessageBox("SOAP Response",ls_soapResponse)<br/> end if <br/> <br/> Catch(SoapException e) <br/> MessageBox("提示","服务器地址或用户名与密码不正确!") <br/> end try <br/> DESTROY lsc_Soapconn;</p><p>二、在数据窗口中显示</p><p>long ll_ret<br/>dw_2.DataObject = "d_xmldata" //建一个与xml字串表达的结构一致的数据窗口<br/>ll_ret = XMLParseString(ls_soapResponse)<br/>if ll_ret = 0 then <br/> dw_2.ImportString(ls_soapResponse) //用返回的xml字串填充数据窗口<br/>end if</p><p></p> 学习 再来看看
页:
[1]