XML 教程

XML 教程 XML 简介 XML 用途 XML 树结构 XML 语法 XML 元素 XML 属性 XML 命名空间 XML Display XML HttpRequest XML Parser XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 验证器 XML DTD XML Schema XML 服务器 XML 实例 XML 测验

XML AJAX

AJAX 简介 AJAX XMLHttp AJAX 请求 AJAX 响应 AJAX XML 文件 AJAX PHP AJAX ASP AJAX 数据库 AJAX 应用程序 AJAX 实例

XML DOM

DOM 简介 DOM 节点 DOM 访问节点 DOM 节点信息 DOM 节点列表 DOM 节点遍历 DOM 节点导航 DOM 获取节点 DOM 更改节点 DOM 删除节点 DOM 替换节点 DOM 创建节点 DOM 添加节点 DOM 克隆节点 DOM 实例

XPath 教程

XPath 简介 XPath 节点 XPath 语法 XPath 轴(Axes) XPath 运算符 XPath 实例

XSLT 教程

XSLT 简介 XSL 语言 XSLT 转换 XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT 客户端 XSLT 服务端 XSLT 编辑 XML XSLT 实例

XQuery 教程

XQuery 简介 XQuery 实例 XQuery FLWOR 表达式 XQuery FLWOR + HTML XQuery 术语 XQuery 语法 XQuery 添加元素和属性 XQuery 选择和过滤 XQuery 函数

XML DTD

DTD 简介 DTD 构建模块 DTD 元素 DTD 属性 DTD 元素 vs. 属性 DTD 实体 DTD 实例

XSD Schema

XSD 简介 XSD How To XSD <schema> XSD 元素 XSD 属性 XSD 限制

XSD Complex

XSD 复杂元素 XSD 空元素 XSD 仅限元素 XSD 纯文本元素 XSD 混合 XSD 指示器 XSD <any> XSD <anyAttribute> XSD 替换 XSD 实例

XSD 数据类型

XSD 字符串 XSD 日期 XSD 数值 XSD 杂项 XSD 参考手册

Web Services

XML Services 简介 XML WSDL XML SOAP XML RDF XML RSS

参考手册

DOM 节点类型 DOM 节点 DOM NodeList DOM NamedNodeMap DOM 文档 DOM 元素 DOM 属性 DOM 文本 DOM CDATA DOM 注释 DOM XMLHttpRequest DOM 解析器 XSLT 元素 XSLT/XPath 函数


XML Web Services 网络服务

Web服务是Web应用程序组件。

Web服务可以在Web上发布、查找和使用。

本教程介绍WSDL、SOAP、RDF和RSS。


WSDL

  • WSDL代表Web服务描述语言
  • WSDL是一种用于描述Web服务的基于XML的语言。
  • WSDL是W3C的建议

SOAP

  • SOAP代表简单对象访问协议
  • SOAP是用于访问Web服务的基于XML的协议。
  • SOAP是基于XML的
  • SOAP是W3C推荐的

RDF

  • RDF代表资源描述框架
  • RDF是一个描述web上资源的框架
  • RDF是用XML编写的
  • RDF是W3C推荐的

RSS

  • RSS代表非常简单的联合
  • RSS允许你联合你的网站内容
  • RSS定义了一种共享和查看标题和内容的简单方法
  • RSS文件可以自动更新
  • RSS允许不同站点的个性化视图
  • RSS是用XML编写的

你应该知道的

在学习web服务之前,您应该对XML和XML名称空间有一个基本的了解。

如果您想先学习这些主题,请阅读我们的XML教程XML 教程



Web Web Services

  • Web服务是应用程序组件
  • Web服务使用开放协议进行通信
  • Web服务是自包含和自描述的
  • 可以使用UDDI发现Web服务
  • Web服务可以被其他应用程序使用
  • HTTP和XML是Web服务的基础

互操作性具有最高优先级

当所有主要的平台都可以使用浏览器访问Web时,不同的平台就不能进行交互。为了使这些平台协同工作,开发了Web应用程序。

Web应用程序只是在Web上运行的应用程序。这些都是围绕Web浏览器标准构建的,可以由任何平台上的任何浏览器使用。


Web服务将Web应用程序提升到了一个新的层次

通过使用Web服务,您的应用程序可以向世界其他地方发布其功能或消息。

Web服务使用XML编码和解码数据,使用SOAP传输数据(使用开放协议)。

通过Web服务,您的会计部门的Win 2k服务器的计费系统可以连接到IT供应商的UNIX服务器。


Web服务有两种用途

可重用的应用程序组件。

应用程序经常需要一些东西。为什么要一次又一次地做这些呢?

Web服务可以提供应用程序组件,例如:货币转换、天气报告,甚至语言翻译作为服务。

连接现有软件。

Web服务可以通过为不同的应用程序提供一种链接其数据的方法来帮助解决互操作性问题。

通过Web服务,您可以在不同的应用程序和不同的平台之间交换数据。

任何应用程序都可以有一个Web服务组件。

无论编程语言如何,都可以创建Web服务。


Web服务实例

在下面的实例中,我们将使用ASP.NET创建一个简单的Web服务,将温度从华氏度转换为摄氏度,反之亦然:

<%@ WebService Language="VBScript" Class="TempConvert" %>

Imports System
Imports System.Web.Services

Public Class TempConvert :Inherits WebService

<WebMethod()> Public Function FahrenheitToCelsius(ByVal Fahrenheit As String) As String
  dim fahr
  fahr=trim(replace(Fahrenheit,",","."))
  if fahr="" or IsNumeric(fahr)=false then return "Error"
  return ((((fahr) - 32) / 9) * 5)
end function

<WebMethod()> Public Function CelsiusToFahrenheit(ByVal Celsius As String) As String
  dim cel
  cel=trim(replace(Celsius,",","."))
  if cel="" or IsNumeric(cel)=false then return "Error"
  return ((((cel) * 9) / 5) + 32)
end function

end class

此文档另存为.asmx文件。这是XML Web服务的ASP.NET文件扩展名。


实例说明

注释: 要运行此实例,您需要一个.NET服务器。

实例中的第一行说明这是一个用VBScript编写的Web服务,类名为"TempConvert":

<%@ WebService Language="VBScript" Class="TempConvert" %>

下一行从.NET framework导入命名空间"System.Web.Services":

Imports System
Imports System.Web.Services

下一行定义"TempConvert"类是WebService类类型:

Public Class TempConvert :Inherits WebService

接下来的步骤是基本的VB编程。此应用程序有两个功能。一个从华氏度转换成摄氏度,一个从摄氏度转换成华氏度。

与普通应用程序的唯一区别是,该函数被定义为"WebMethod()"。

使用"WebMethod()"将应用程序中的函数转换为web服务:

<WebMethod()> Public Function FahrenheitToCelsius(ByVal Fahrenheit As String) As String
  dim fahr
  fahr=trim(replace(Fahrenheit,",","."))
  if fahr="" or IsNumeric(fahr)=false then return "Error"
  return ((((fahr) - 32) / 9) * 5)
end function

<WebMethod()> Public Function CelsiusToFahrenheit(ByVal Celsius As String) As String
  dim cel
  cel=trim(replace(Celsius,",","."))
  if cel="" or IsNumeric(cel)=false then return "Error"
  return ((((cel) * 9) / 5) + 32)
end function

然后,结束课程:

end class

在支持.NET的服务器上发布.asmx文件,您将拥有第一个工作的Web服务。


将Web服务放在您的网站上

使用表单和HTTP POST方法,可以将web服务放在站点上,如下所示:

Fahrenheit to Celsius:

Celsius to Fahrenheit:

怎么做

以下是将Web服务添加到网页的代码:

<form action='tempconvert.asmx/FahrenheitToCelsius'
method="post" target="_blank">
<table>
  <tr>
    <td>Fahrenheit to Celsius:</td>
    <td>
    <input class="frmInput" type="text" size="30" name="Fahrenheit">
    </td>
  </tr>
  <tr>
    <td></td>
    <td align="right">
     <input type="submit" value="Submit" class="button">
     </td>
  </tr>
</table>
</form>

<form action='tempconvert.asmx/CelsiusToFahrenheit'
method="post" target="_blank">
<table>
  <tr>
    <td>Celsius to Fahrenheit:</td>
    <td>
    <input class="frmInput" type="text" size="30" name="Celsius">
    </td>
  </tr>
  <tr>
    <td></td>
    <td align="right">
    <input type="submit" value="Submit" class="button">
    </td>
  </tr>
</table>
</form>

用web服务的地址替换"tempconvert.asmx",如下所示:

http://www.example.com/xml/tempconvert.asmx