qual é a diferença entre XSD e WSDL

177

Qual é a diferença entre an XML Schemae WSDL?

A diferença que notei é que WSDLcontém XSDe no WSDLpodemos declarar operações, mas não no XSD. Isso está correto?

make
fonte

Respostas:

176

XSD define um esquema que é uma definição de como um documento XML pode ser estruturado. Você pode usá-lo para verificar se um determinado documento XML é válido e segue as regras que você definiu no esquema.

WSDL é um documento XML que descreve um serviço da web. Ele mostra quais operações estão disponíveis e como os dados devem ser estruturados para enviar a essas operações.

Os documentos WSDL têm um XSD associado que mostra o que é válido para colocar em um documento WSDL.

Paolo
fonte
15
A resposta de Paolo está correta. Apenas aprimorando. Como o WSDL é realmente XML e pode ou não ter XSD para validar sua estrutura. O XSD associado pode ser um arquivo separado e importado no WSDL ou o XSD completo pode ser incorporado embutido no próprio arquivo WSDL usando a tag <WSDL: types>. Para obter mais detalhes, ibm.com/developerworks/webservices/library/ws-tip-imports
supernova
Se são praticamente duas coisas separadas, por que, quando crio um serviço da Web, por exemplo, no Netbeans, recebo um ?xsd=1URL automaticamente?
CodyBugstein
211

O WSDL (Web Services Description Language) descreve seu serviço e suas operações - como é chamado o serviço, quais métodos ele oferece, que tipo de parâmetros e valores de retorno esses métodos possuem?

É uma descrição do comportamento do serviço - é funcionalidade.

XSD (Xml Schema Definition) descreve a estrutura estática dos tipos de dados complexos que estão sendo trocados por esses métodos de serviço. Ele descreve os tipos, seus campos, qualquer restrição nesses campos (como comprimento máximo ou um padrão de expressão regular) e assim por diante.

É uma descrição dos tipos de dados e, portanto, das propriedades estáticas do serviço - trata-se de dados.

marc_s
fonte
25
Essa é uma resposta muito melhor para explicar o XSD no contexto de um WSDL e não apenas a diferença entre os dois. Para adicionar, as definições XSD fazem parte do WSDL na tag <wsdl: types>.
Airboss
Então, eu poderia ter um WSDL sem um XSD se não precisar de uma definição de dados complexa?
Esseara 15/11/19
61

XSD: definição de esquema XML.

XML: eXtensible Markup Language.

WSDL: Linguagem de Definição de Serviço da Web.

Não vou responder em termos técnicos. Eu estou apontando esta explicação para iniciantes.

Não é fácil se comunicar entre dois aplicativos diferentes desenvolvidos usando duas tecnologias diferentes. Por exemplo, uma empresa em Chicago pode desenvolver um aplicativo Web usando Java e outra em Nova York pode desenvolver um aplicativo em C # e, quando essas duas empresas decidem compartilhar informações, o XML entra em cena. Ajuda a armazenar e transportar dados entre dois aplicativos diferentes desenvolvidos usando tecnologias diferentes. Nota: não se limita a uma linguagem de programação, faça uma pesquisa sobre o transporte de informações entre dois aplicativos diferentes.

XSD é uma definição de esquema. Com isso, quero dizer que está dizendo aos usuários para desenvolver seu XML em um esquema desse tipo. Por favor, veja as imagens abaixo e observe atentamente o elemento "carregar na inicialização" e seu tipo que é inteiro. Na imagem XSD, você pode ver que ele deve ser um valor inteiro para a "carga na inicialização" e, portanto, quando o usuário criou seu XML, ele passou um valor int para esse elemento em particular. Como lembrete, XSD é um esquema e estilo, enquanto XML é um formulário para se comunicar com outro aplicativo ou sistema. É preciso ver o XSD e criar XML dessa maneira, caso contrário, ele não se comunicará com outro aplicativo ou sistema que foi desenvolvido com uma tecnologia diferente. Uma empresa em Chicago fornece um modelo XSD para uma empresa no Texas gravar ou gerar seu XML no formato XSD fornecido. Se a empresa no Texas não aderiu às regras ou esquemas mencionados no XSD, é impossível esperar informações corretas da empresa em Chicago. Há muito o que fazer depois da história acima mencionada, que um amador ou novato precisa saber ao codificar algo como eu disse acima. Se você realmente quer saber o que acontece depois, é melhor conversar com engenheiros de software seniores que realmente desenvolveram serviços da Web. Em seguida, vem o WSDL, siga as imagens e tente descobrir onde o WSDL se encaixa. Se você realmente quer saber o que acontece depois, é melhor conversar com engenheiros de software seniores que realmente desenvolveram serviços da Web. Em seguida, vem o WSDL, siga as imagens e tente descobrir onde o WSDL se encaixa. Se você realmente quer saber o que acontece depois, é melhor conversar com engenheiros de software seniores que realmente desenvolveram serviços da Web. Em seguida, vem o WSDL, siga as imagens e tente descobrir onde o WSDL se encaixa.

*************** ======== Abaixo está uma imagem XML parcial ========== ************ *** Imagem XML parcial

*************** ======== Abaixo está uma imagem XSD parcial ========== ************ ***

Imagem XSD parcial

*************** ======== Abaixo está a imagem parcial do WSDL ======= *************

Imagem WSDL parcial

Eu tive que criar um WSDL de amostra para um serviço da Web chamado Book. Observe que é um XSD, mas você deve chamá-lo de WSDL (Web Service Definition Language) porque é muito específico para os Serviços Web. O WSDL acima (ou em outras palavras, XSD) é criado para uma classe chamada Book.java e criou um serviço SOAP. Como o serviço da web SOAP o criou, é um tópico diferente. É necessário escrever uma classe Java e, antes de executá-la, criar como um serviço da Web, o usuário deve garantir que a API do Axis2 esteja instalada e que o Tomcat para hospedar o serviço da Web esteja em vigor.

Como um prestador de serviços (aquele que permite que outros (clientes) acessem informações ou dados de seus sistemas), na verdade, concede ao cliente (aquele que precisa usar informações ou dados do prestador de serviços) acesso completo aos dados através de um serviço da Web, porque nenhuma empresa a terra disposta a expor seu banco de dados para pessoas de fora. Como a minha empresa, decidimos fornecer algumas informações sobre produtos via Web Services, portanto, tivemos que criar um modelo XSD e repassar para alguns de nossos clientes que desejam trabalhar conosco. Eles precisam escrever algum código para fazer uso completo do XSD fornecido e fazer chamadas de serviço da Web para buscar dados do prestador de serviços e converter os dados retornados em seus requisitos adequados e, em seguida, exibir ou publicar dados ou informações sobre o produto em seu site. Um exemplo simples seria a reserva de bilhetes FLIGHT. Uma companhia aérea permitirá que terceiros usem os dados de voo em seu site para a venda de passagens. Mas, novamente, há muito mais, não é apenas permitir que o agente de passagens aéreas de terceiros venda bilhetes, haverá sincronização e segurança. Se não houver sincronização, há 100% de chances de mais de um cliente comprar o mesmo bilhete de avião de várias fontes.

Espero que os especialistas contribuam para a minha resposta. É realmente difícil para iniciantes ou novatos entender XML, XSD e depois trabalhar nos Serviços da Web.

MKod
fonte
pelo menos ele me deu uma dica de como essas tecnologias funcionam
MbaiMburu
10

XSD é para validar o documento e contém metadados sobre o XML, enquanto WSDL é para descrever o local e as operações do serviço da web.

Priyank Bolia
fonte
3

XSD (definição de esquema XML) define o elemento em um documento XML. Pode ser usado para verificar se os elementos no documento xml seguem a descrição na qual o conteúdo deve ser colocado. Enquanto wsdl é um tipo específico de documento XML que descreve o serviço da web. O próprio WSDL adere a um XSD.

vivyzer
fonte
1

WSDL - Ele contém a Operação como Métodos que um serviço da Web fornece. E esse método pode aceitar tipos de dados simples, como int, float etc. e tipos de dados complexos, como objetos, vetores, matrizes etc. usava. e com base no xsd, um usuário que deseja acessar o serviço da web de uma plataforma diferente pode fornecer os dados adequadamente.

Consulte: ayazroomy-java.blogspot.com para ler sobre o básico do serviço da web.

ayaz
fonte
0

XSD é um esquema para o arquivo WSDL. XSD contém tipos de dados para WSDL. O elemento declarado em XSD é válido para uso no arquivo WSDL. Podemos verificar o WSDL em relação ao XSD para verificar se o serviço da Web WSDL é válido ou não.

Snehal Mais
fonte
0

Se alguém estiver procurando por analogia, esta resposta pode ser útil.

O WSDL é como o comando 'SHOW TABLE STATUS' no mysql. Ele define todos os elementos (tipo de solicitação, tipo de resposta, formato da URL a ser atingida, etc.) que devem fazer parte do XML. Por definição, quero dizer: 1) Nomes de solicitação ou resposta 2) O que deve ser tratado como entrada, o que deve ser tratado como saída.

XSD é como o comando DESCRIBE no mysql. Diz o que todas as variáveis ​​e seus tipos, uma solicitação e resposta contém.

Sunny Gangisetti
fonte
DESC no mysql não é usado para a ordem de classificação? DESCRIBE, no entanto, é mais parecido.
Mang