前两天所做的主要工作是: .NET调用JAVA WEB SERVICE,然后把返回的数据转换为.NET中的DataSet。在网上搜索WEB SERVICE到DataSet中的转换,基本没有现成的工具支持。网上有一些想法,其中有一种想法和我的想法一致,并且他们在BEA的项目中实现过。
因此,我最终确定了这条设计思路。
我们知道DataSet是可以和XML相互转换的,但是转换的时候要求XML满足一定的格式要求。否则,dataSet.ReadXML是会出错的。
要满足什么样的条件呢?主要有两种方法。第一种:带名字空间,将XML的元素完全符合DataSet的XSD定义,这样就没有问题了。这种方式不用在前面加上mstns这个名字空间;另外一种:不带名字空间,但是需要将XSD定义加到XML的根元素中,用于描述该文档的SCHEMA定义。
两种方式都可以。但都要求,XML格式要满足XSD定义。
而DataSet的XSD定义可以通过查看文件得到。只要我们的DataSet是相对固定的,那么我们的JAVA WEB SERVICE就只需要生成该DataSet对应的XML文件就可以了。
在JAVA端,生成XML文件有很多方式。有采用XML -> JAVA BEAN的转换;也有直接裸写的。我采用第二种方式,直接使用DOM4J构造XML文件。其原因是由于该XML格式比较复杂。
如果采用第一种,需要根据单个对象生成XML,然后把XML的片断构造成新的XML。也比较麻烦。并且要定义好多JAVA BEAN类,不不太想这么做。
OK。昨天已经搞定了这件事情。
今天开始将DataSet转换为我想要的XML文件定义。然后在服务器端拿到这个文件之后,就可以开始解析了,从而完成WEB SERVICE操作,嘿嘿:)
一切都变得明朗了。.NET WEB SERVICE终于拿掉了,爽。
晚上去游泳了,真是难得,游了一个小时,挺累的。
因此,我最终确定了这条设计思路。
我们知道DataSet是可以和XML相互转换的,但是转换的时候要求XML满足一定的格式要求。否则,dataSet.ReadXML是会出错的。
要满足什么样的条件呢?主要有两种方法。第一种:带名字空间,将XML的元素完全符合DataSet的XSD定义,这样就没有问题了。这种方式不用在前面加上mstns这个名字空间;另外一种:不带名字空间,但是需要将XSD定义加到XML的根元素中,用于描述该文档的SCHEMA定义。
两种方式都可以。但都要求,XML格式要满足XSD定义。
而DataSet的XSD定义可以通过查看文件得到。只要我们的DataSet是相对固定的,那么我们的JAVA WEB SERVICE就只需要生成该DataSet对应的XML文件就可以了。
在JAVA端,生成XML文件有很多方式。有采用XML -> JAVA BEAN的转换;也有直接裸写的。我采用第二种方式,直接使用DOM4J构造XML文件。其原因是由于该XML格式比较复杂。
如果采用第一种,需要根据单个对象生成XML,然后把XML的片断构造成新的XML。也比较麻烦。并且要定义好多JAVA BEAN类,不不太想这么做。
OK。昨天已经搞定了这件事情。
今天开始将DataSet转换为我想要的XML文件定义。然后在服务器端拿到这个文件之后,就可以开始解析了,从而完成WEB SERVICE操作,嘿嘿:)
一切都变得明朗了。.NET WEB SERVICE终于拿掉了,爽。
晚上去游泳了,真是难得,游了一个小时,挺累的。