旧知识:soap、webservice、wcf
SOAP、web service、WCF
SOAP (Simple Object Access Protocol,简单对象访问协议),是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换。一条 SOAP 消息就是一个普通的 XML 文档。总之,HTTP + XML = SOAP,它就是用于系统间数据通信的,特点就是接口的数据传输格式必须是XML而已。历史久远,现在已经很少用。
再说webservice,这是个古老的术语,其实它就是个开放的数据接口,既不是框架也不是技术,对我们开发者而言,侧重点就是是接口函数的编写。微软将web service实现成为 asp.net web service,然后发展到WSE系列,WSE3.0之后就是 WCF 时代。
WCF是一个.net平台的服务开发框架,用来创建各种服务(数据接口)。其中包括创建 Web Service(采用 basicHttpBinding绑定的服务就是一个Web 服务)。
Web Service 和WCF的比较:https://www.cnblogs.com/zhao123/p/5599096.html
现在,各个服务提供都是基于webapi的,基本都使用json格式的文本传输数据。soap比较不同和稍有特色的是:它数据传输都是XML格式,另外提供了服务说明文档,即类似于现在的具有公开可测试的接口文档的webapi。
古老的 web service
在了解SOAP协议之前,应该了解下xml和xml命名空间的相关基础知识。(文末有介绍)
通过使用 Web Services,您的应用程序可以向全世界发布信息,或提供某项功能。(就是接口,类似 RESTful API)
Web Services 脚本平台(比如.net)需支持 XML + HTTP。
Web Services使用 XML 来编解码数据,并使用 SOAP 借由开放的协议来传输数据。
Web Services平台的元素:
-
SOAP (简易对象访问协议)
-
UDDI ((Universal Description, Discovery, and Integration) 通用描述、发现及整合
-
WSDL(Web Services Description Language):WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。
- 通过XML形式说明服务在什么地方-地址。address location
- 通过XML形式说明服务提供什么样的方法 – 如何调用。operation
当用户找到你的WSDL描述文档后(就是接口文档地址,通常需要告诉调用方该URL),他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范。
asp.net 自定义webservice
略
asp.net 调用 webservice
略
XML命名空间
xml命名空间
在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。XML 命名空间提供避免元素命名冲突的方法。
通过在元素的开始标签中设置xmlns
属性可以设置该元素及其子元素的命名空间,有两种方式:
方式一,标签加前缀:<h:table xmlns:h="http://www.w3.org/TR/html4/">
,这样的话,标签左边有个冒号,冒号左边是前缀名,xmlns属性解释了该前缀对应的命名空间,使用这种命名空间,就得对该标签的每个子元素也使用相同的前缀,而不需要xmlns属性。
方式二:默认命名空间:<table xmlns="http://www.w3.org/TR/html4/">
, 使用默认命名空间的作用是, 该元素内部的子元素都会默认属于该命名空间下, 我们不需要为他们一一添加命名空间前缀。
xmlns:xsi 与 xsi:schemaLocation
看个元素的例子:<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
xmlns:xsi 定义了一个命名空间前缀 xsi 对应的唯一字符串 http://www.w3.org/2001/XMLSchema-instance。 但是读者会发现, 这个 xmlns:xsi 在不同的 xml 文档中似乎都会出现。 这是因为, xsi 已经成为了一个业界默认的用于 XSD((XML Schema Definition) 文件的命名空间。 而 XSD 文件(也常常称为 Schema 文件)是用来定义 xml 文档结构的。
那么, 有了上述的理解, 再来看xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"上面这行的语法其实是, xsi:schemaLocation = "键" “值”即 xsi 命名空间下 schemaLocation 元素的值为一个由空格分开的键值对。前一个“键” http://maven.apache.org/POM/4.0.0 指代 【命名空间】, 只是一个全局唯一字符串而已后一个值指代 【XSD location URI】 , 这个值指示了前一个命名空间所对应的 XSD 文件的位置, xml parser 可以利用这个信息获取到 XSD 文件, 从而通过 XSD 文件对所有属于 命名空间 http://maven.apache.org/POM/4.0.0 的元素结构进行校验, 因此这个值必然是可以访问的, 且访问到的内容是一个 XSD 文件的内容
更新于:2023.5.26
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?