WSDLs and Schemas

Web services involve the exchange of requests and responses between computers communicating over the Internet. So that computers running different operating systems can communicate, the vocabulary for the communication must be established. A WSDL is a dictionary of terms that two computers can use to structure requests and responses. Schemas typically contain type definitions of the terms in the WSDL.

This section provides a brief introduction to WSDLs and schemas and also provides the location for the Amazon FPS WSDL and schema.

WSDL

A WSDL (Web Service Description Language) is an XML document that defines the operations, parameters, requests, and responses used in web service interactions. You can think of a WSDL as the contract that defines the language and grammar used by web service clients and servers. When you look at the Amazon FPS WSDL, for example, you find in it all of the Amazon FPS operation names, parameters, request and response structures.

There is not a single WSDL. Amazon FPS, for example, has many different versions of its WSDL—the latest one and all of its previous versions. Not only can one company use different versions of a WSDL, every company can use its own WSDL based on its own APIs or business metrics. For that reason, web service requests must identify the WSDL they use so the web servers know how to interpret the requests.

The latest Amazon FPS WSDL is at: https://fps.amazonaws.com/doc/2008-09-17/AmazonFPS.wsdl

Schema

A schema is similar to a WSDL in that both are XML documents. Whereas the WSDL defines the web service language used by computers to converse, the schema defines the data types used in the WSDL.

You do not have to create schemas to use Amazon FPS. Those have already been created. It is helpful, however, to understand schemas so that you can determine the data types returned in responses.

The W3C defines the base data types, which include, for example, int, string, and float. While these data types are useful, they are not very descriptive. For example, defining every occurrence of text in an XML document as being of type string hides the differences between text that might be, for example, a paragraph versus a note. In such an application where paragraphs and notes are used, a schema would contain an extension of the string base class so that paragraph (<para>) and note (<note>) could be used as tags in XML documents.

The latest Amazon FPS schema is at: https://fps.amazonaws.com/doc/2008-09-17/AmazonFPS.xsd