A Linguagem de Descrição de Serviços Web (WSDL) é um modelo e formato para descrever serviços web usando XML. Um consumidor pode localizar um serviço e executar suas operações. Esse processo pode ser automatizado usando a maioria das ferramentas de desenvolvimento comuns, permitindo integração de aplicações com pouco código escrito pelo desenvolvedor. Os WSDLs são um contrato entre o provedor e o consumidor do serviço; eles tornam um serviço auto-descritivo. Os WSDLs fornecem descrições de todas as operações públicas, tipos de dados para todas as mensagens do serviço, detalhes de vinculação para o protocolo de transporte e informações de endereço do serviço. Um elemento "import" pode ser usado em um WSDL para importar WSDLs externos ou esquemas XML. Importar itens externos é útil para tornar o WSDL mais modular, permitir reutilização de tipos de dados XML entre múltiplas definições de serviço e suportar múltiplas versões de um esquema.
Crie um novo arquivo no seu editor de texto ou XML. Se o editor suportar WSDLs, selecione WSDL como tipo de arquivo. Se não suportar WSDLs, mas suportar XML, selecione XML como tipo de arquivo. Se nenhum dos dois for suportado, selecione tipo de arquivo de texto simples.
Nomeie o arquivo como desejar e dê a extensão ".wsdl". Por exemplo, o arquivo pode ser chamado "HelloWorld.wsdl".
Crie um segundo novo arquivo no seu editor de texto ou XML. Se o editor suportar esquemas XML, selecione esquema XML ou XSD como tipo de arquivo. Se não suportar esquemas XML, mas suportar arquivo XML, selecione XML como tipo de arquivo. Se nenhum for suportado, selecione tipo de arquivo de texto simples.
Nomeie o arquivo como desejar e dê a extensão ".xsd". Por exemplo, o arquivo pode ser chamado "HelloWorld.xsd".
Insira a seguinte marcação no arquivo de esquema XML que você criou:
<?xml version="1.0"?>
<xsd:schema targetNamespace="https://schemas.myorg.com/person/phone" xmlns:xsd="https://www.w3.org/2001/XMLSchema">
<xsd:import namespace="https://www.w3.org/2001/XMLSchema"/>
<xsd:complexType name="Phone">
<xsd:sequence>
<xsd:element name="areaCode" type="xsd:int"/>
<xsd:element name="exchange" type="xsd:int"/>
<xsd:element name="number" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Isso define um esquema com o namespace "https://schemas.myorg.com/person/phone", que define um único tipo de dado "Phone".
Insira a seguinte marcação no arquivo WSDL que você criou:
<?xml version="1.0"?>
<wsdl:description xmlns:wsdl="https://www.w3.org/ns/wsdl"
xmlns:wsoap="https://www.w3.org/ns/wsdl/soap"
xmlns:external="https://schemas.myorg.com/person/phone"
xmlns:helloWorld="https://schemas.myorg.com/wsdl/helloworld"
targetNamespace="https://schemas.myorg.com/wsdl/helloworld">
<wsdl:documentation>WSDL com exemplo de importação</wsdl:documentation>
<wsdl:types>
<xs:import namespace="https://schemas.myorg.com/person/phone"
schemaLocation="https://www.myorg.com/supporting/schemas/helloworld.xsd"/>
<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema"
targetNamespace="https://schemas.myorg.com/wsdl/helloworld">
<xsd:element name="CallNumber" type="external:Phone"/>
<xsd:element name="HelloResponse" type="xsd:string"/>
</xsd:schema>
</wsdl:types>
<wsdl:interface name="helloInterface">
<wsdl:operation name="CallMe" pattern="https://www.w3.org/ns/wsdl/in-out"
style="https://www.w3.org/ns/wsdl/style/iri">
<wsdl:input messageLabel="In" element="helloWorld:CallNumber"/>
<wsdl:output messageLabel="Out" element="helloWorld:HelloResponse"/>
</wsdl:operation>
</wsdl:interface>
<wsdl:binding name="helloBinding" interface="hy:helloInterface"
type="https://www.w3.org/ns/wsdl/soap"
wsoap:protocol="https://www.w3.org/2003/05/soap/bindings/HTTP/">
<wsdl:operation ref="hy:Hello"
wsoap:mep="https://www.w3.org/2003/05/soap/mep/soap-response"/>
</wsdl:binding>
<wsdl:service name="helloService" interface="hy:helloInterface">
<wsdl:endpoint name="helloEndpoint" binding="hy:helloBinding"
address="https://www.myorg.com/Service/Hello"/>
</wsdl:service>
</wsdl:description>
Esta marcação define um WSDL que importa um esquema XML externo chamado "helloworld.xsd" que contém o namespace "https://schemas.myorg.com/person/phone".
A declaração de importação no WSDL importa um namespace XML de um arquivo. O propósito principal do elemento import é importar o namespace, não indicar onde as declarações no namespace podem ser encontradas. O elemento inclui o atributo opcional "schemaLocation". O atributo é opcional porque um namespace pode ser importado do mesmo arquivo ou ser registrado de outra forma. Segundo a especificação WSDL, "schemaLocation" é apenas uma dica; um analisador XML é livre para ignorar a localização. Se o analisador já conhece os tipos de esquema naquele namespace, ou tem outro mecanismo para encontrá-los, não precisa usar a localização. No entanto, em muitos casos, um namespace é importado que o analisador XML não conhece, então o atributo "schemaLocation" torna-se necessário, mas tecnicamente ainda é apenas uma dica.
Novas tecnologias como troca de metadados (MEX) foram introduzidas para compartilhar informações sobre quais capacidades um serviço suporta, mas esses padrões ainda não foram amplamente adotados.
WSDLs suportam includes e imports. Eles podem soar semelhantes, mas se comportam de forma diferente. Uma declaração import importa outro namespace. Uma declaração include importa declarações de tipos de dados XML para um namespace existente.
Tecnologia Eletrônica © [www.351231.com]