您能告诉WSDL使用哪种数据库吗?问的原因是第三方只给我一个网址,并没有告诉我任何关于数据库的事情。我要求他们给我一些文件来解释一下,但他们从未这样做过。
我是这方面的新手并经过一些研究,但我不知道是什么数据库(oracle?sql?xml?)
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions name="AccountService" targetNamespace="http:// local host/web/" xmlns:ns1="http://client.local host/web//" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://local host/web/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://local host/web/" xmlns:tns="local host/web/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="ArrayOfAccount">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="Account" nillable="true" type="tns:Account"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Account">
<xsd:sequence>
<xsd:element minOccurs="0" name="currentbalance" nillable="true" type="xsd:decimal"/>
</xsd:sequence>
</xsd:complexType>
第二个问题是,我可以使用.asp直接调用数据库中的元素吗?
最后一个问题是,WSDL只是一组告诉服务器生成结果的策略(规则)?
答案 0 :(得分:1)
不,不可能仅通过它的WSDL来确定Web服务的内部实现。
答案 1 :(得分:1)
对于你的问题:
您无法从WSDL中分辨出哪种数据库,甚至是关于Web服务后端的任何内容。它特别是一个描述性文档,显示了可用的方法类型。它可以是基于Java的Web服务,.Net或其他任何东西,并指向Web服务开发人员决定使用的数据库。拥有服务模型的关键在于客户端并不真正需要了解它所使用的服务的内部工作方式,可以调用哪些函数,以及它接受哪种数据,这是WSDL提供的内容。
如果您正在托管Web服务,那么您将拥有数据库和方向来设置连接字符串。在这种情况下,您的ASP应用程序“可以”连接到数据库,但它不应该,因为它将首先破坏了服务的目的。最好更新服务以包含您需要的任何功能。但是,根据您的请求,您可能无法控制Web服务,因此您将无法直接连接到数据库。如果数据库与您的服务位于同一网络上,并且没有阻止数据库连接的防火墙策略,理论上您可以连接到服务使用的数据库。但是,再次,这将破坏提供服务的目的。
WSDL只是一个描述服务可以执行的操作的XML文件。它实际上没有做任何工作。当您使用WebClient或HttpClient之类的Http请求传递到传递所需信息的URL时,将处理该工作。因此,WSDL可以用XML显示:
方法网址:
http://someURL/UpdateAccounts
接受参数: 帐户
然后在您的服务中,您将编码以将请求发布到
http://someURL/UpdateAccounts
传入帐户转换为XML。
答案 2 :(得分:0)
WSDL是一个描述Web服务的文档,列出了所有Web方法及其参数。它可以帮助您构建可以使用Web服务的客户端。它描述了如何与Web服务进行通信。无论有没有DB,webservice本身都可以通过创建者想要的方式实现。他们根本没有关系。
答案 3 :(得分:0)
WSDL仅描述接口,如函数定义。不是关于服务的内部人员。所以不,你不能说。