一、名字解释
(1)xml的Schema约束
book.xsd是对book.xml文件的约束。
Schema规范中所有的标签和属性都需要用Schema文件来定义;
所有的Schema文件都需要一个id,但在这里叫做namespace;
其中namespace的值由什么来指定?
由targetNamespace属性来指定,它的值是一个url(很有可能不存在)
如何引入Schema约束?
属性: xmlns
值: 约束文档Schema文件的namespace,就是id,也是它的targetNamespace的值
如果引入的Schema不是w3c组织定义的,必须指定Schema文件的位置。
Schema文件有什么属性来指定? schemaLocation 值: namespace+path
book.xsd
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/bookSchema"
elementFormDefault="qualified">
<element name="书架">
<complexType>
<sequence maxOccurs="unbounded">
<element name="书">
<complexType>
<sequence>
<element name="书名" type="string">
</element>
<element name="作者" type="string">
</element>
<element name="售价" type="string">
</element>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>
book.xml
<?xml version="1.0" encoding="UTF-8"?>
<书架 xmlns="http://www.example.org/bookSchema"
xmlns:dd="http://www.w3.org/2001/XMLSchema-instance"
dd:schemaLocation="http://www.example.org/bookSchema book.xsd">
<书>
<书名>JavaScript开发</书名>
<作者>老董</作者>
<售价>28.00元</售价>
</书>
<书>
<书名>Java开发</书名>
<作者>老董</作者>
<售价>38.00元</售价>
</书>
</书架>
<?xml version="1.0" encoding="UTF-8"?>
<tt:书架 xmlns:tt="http://www.example.org/bookSchema"
xmlns:dd="http://www.w3.org/2001/XMLSchema-instance"
dd:schemaLocation="http://www.example.org/bookSchema book.xsd">
<tt:书>
<tt:书名>JavaScript开发</tt:书名>
<tt:作者>老董</tt:作者>
<tt:售价>28.00元</tt:售价>
</tt:书>
<tt:书>
<tt:书名>Java开发</tt:书名>
<tt:作者>老董</tt:作者>
<tt:售价>38.00元</tt:售价>
</tt:书>
</tt:书架>
(2) http协议
请求组成:
请求行(请求方式+path+请求协议(http1.1))
请求头
请求体(只有post请求有)
响应组成:
响应状态行: 响应状态码
响应头
响应体:浏览器解析显示的数据
(二)webService概念(跨平台、跨语言、远程调用)
1.基于web的服务,服务器端整出一些资源让客户端应用访问(获取数据)
2.一个跨语言、跨平台的规范(抽象)
3.多个跨平台、跨语言的应用间通信整合的方案(实际)
(三)webservice重要的术语
(1)wsdl web service defination language
WebService定义语言
1.对应一种类型的文件.wsdl
2.定义了webservice的服务器端与客户端应用交互传递请求和响应数据的格式和方式
3.一个web service 对应一个唯一的wsdl文档
(2)soap:simple object access protocal
简单对象访问协议
1.是一个简单的、基于http和xml的协议,用于在web上交换结构化的数据。
2.soap消息:请求和响应信息
3.http+xml片段
(3)sei: webservice endpoint interface
web service 的终端接口
webService服务器端用来处理请求的接口
(4)CXF:Celtix+XFire
一个apache的用于开发webservice服务器端和客户端的框架。
(四)使用jdk开发WebService
采用jdk1.6版本以上
(1) 开发服务器端
- Web Service 编码:
- -- @WebService(SEI和SEI的实现类)
- -- @WebMethod(SEI中的所有方法)
- 发布Web Service:
- -- Endpoint(终端,发布webservice)
(2) 开发客户端
- 使用eclipse提供的web service 浏览器访问
- -- 查看对应的wsdl文档: ......?wsdl(一般浏览器)
- -- 请求webService并查看请求和响应消息(webservice浏览器)
- 创建客户端应用编码方式访问
- -- 借助jdk的wsimport.exe工具生成客户端代码:
wsimport -keep url // url为wsdl文件的路径
注意: wsimport中url可以是个网络地址,比如:http://192.168.2.103:8888/demo/hellows?wsdl
也可以将wsdl文件保存到本地,来生成客户端代码:
- -- 借助生成的代码编写请求代码