这次完全采用Schema来定义数据结构,以一个书目查询的服务为例!那么我们先来定义一个关于书籍信息的数据结构的Schema:














之后我们再来定义一下Request协议的Schema




















好了,Request协议的结构定义完了,接下来就是Resposne的Schema了!



















Schema都定义完成了,我们可以使用VS自带的工具xsd.exe来生成XML序列化过的类文件了,xsd.exe会将Schema里的文档部分的根节点生成类,并将其它的element及attribute序列化为子类及属性
将生成的类文件加到我们的项目里,开始WebService的编写
首先是WebMethod的定义
[WebMethod]
public BookInfoListType BookInfoRequest(QueryInfo query)
{
return null;
}
这
里比较特殊的就是方法的返回数据类型及参数数据类型,返回的数据类型为BookInfoListType,而参数的数据类型为QueryInfo,这两个
类型,都是我们用Schema生成的类型,可以根据类实例属性的值,生成符合Schema要求的XML串,也可以自动解析符合Schema定义的XML字
符串,将XML串里的数据信息,赋给类实例的相应属性
当我们调用WebService时,.Net会将Post过来的XML字符串进行解析,并将XML字符串里的值,赋给类实例里的相应的属性,我们再通过取得的属性值进行相关操作
在设置返回数据类型的类实例时,可以将想要返回的值赋给类实例,之后return这个实例就可以了,.net会
将这个XML序列化过的类实例生成XML串,并Response