Thursday 26 April 2007

Axiom传递xml的小问题



    
昨天经老公的启发,学习的时候要善于总结和积累。本着这个良好的心愿和原则,我开始尝试将自己碰到的小问题,学习的小心得写下来。以下是一个非常简单的小问题。

     前几天随手写一个基于axiom的web
service.方法返回的是一个string,而实际上,这个string 是一个xml
String.当用OMFactory工厂创建OMText的时候,总是将我的string里面的<标签转化成为&it;符号,来证明它真的是一个string.真是较比郁闷。方法当然有,就是在这个表明这个string
是CDATA类型的。翻了半天API,终于发现OMFactory在create OMText的方法中有一个可以加载参数


result.addChild(factory.createOMText(result,response,XMLStreamConstants.CDATA));

有了这个指示,你传什么字符串,都不会给你转换了!:)

 


Flex2初上手



   
第一次接触FLex2.0,发现很强大,也很有趣。刚刚上手几天,热烈欢迎各位拍砖。简单的说,flex编程采用Action
Script3.0 +mxml一种界面语言。这个东东的好处就是,编译不大,下载以后运行也很快,容易上手并且功能也比较强大。

mxml:

1.程序的标签基于http://www.adobe.com/2006/mxml命名空间。我们是不是也可以发布一些基于我们自己的命名空间的控件呢?这是一个很有趣的问题。

2.所有的程序的root节点均为
Application.在里面也可以添加各种属性,XML用来表示界面application真是具有天然的优势啊!:)

3.目前我所用到的,也比较感兴趣的主要在WebService这个标签。在AS3中,是一个类。

WebService调用在Flex中是相当简单也是有趣的。在Flex2.0中,根据web
service的实现不同,大体上也有2种不同的调用方式,一种是REST Service,
采用httpService方式来调用,还有一种就是采用soap ,rpc的,用webService方式来调用。

我现在用到的是用Axiom的WebService.在Flex 中采用WebService来调用。

<mx:WebService id="dqService"
wsdl="http://localhost:8080/axis2/services/dataQualityService?wsdl"
useProxy="false">

 <mx:operation
name="dataQualityService" resultFormat="e4x" result="setResult(
dqService.getOperation('dataQualityService'));">


 </mx:operation>


 </mx:WebService>

这样在写2个简单的function就可以调用了:)

4.
<ms:request/>再operation中,还可以添加子标签request,里面就可以包含request
xml ,就可以发出去了。这种request
xml中还可以包括一些var变量,这些变量用<test>{var}</test>的方式嵌进去就可以了,不过问题是。如果你的var本身也是xml的话,就不能这样嵌了,要再AS中写入一个xml
var,然后再赋值send.否则就会出现<test>[object
object]</test>这种诡异情况出现。

 

关于AS3.0

 


1.采用<mx:Script>

 <![CDATA[

  ]]>

  </mx:Script>标签将AS包含进入mxml中。很类似于在html中扩java
script.

2.WebService
返回的结果用lastResult进行访问。result:String=dqService.dataQualityService.lastResult.ns::Result;其中dqService在mxml中定义好的WebService,dataQualityService是定义好的Operation.而ns,是定义的namespace.由于返回结果是e4x,所以定义好namespace,然后根据namespace进行访问,访问的方式也很有意思。::+节点。(我用的太少,也讲不出来啥......)


3.在AS中xml的访问相对java,axiom比起来更加简单,item:xml就是定义了一个xml片断做节点。item.[...]就是子节点。item.name(),就是该节点的名称,至于text就更简单了。就是item本身的值:),这么简化的xml模型没见过吧,呵呵。用xml应该更加得心应手才对。

 


以上是这2天的学习心得,看的东西也不多,文档看得更少,因此,以上都是我自己的理解,我想这份总结应该是错误满篇吧,不过既然学习了一点,就先写下来以后再改吧:)