Example Usage and Hierarchical Structures
Example 1: In this example, the “Person” data type includes not only basic elements like “FirstName” and “LastName” but also a complex element “Address” with its own nested structure. This illustrates how the <types> element supports the definition of intricate data types, crucial for representing real-world entities in web service communications.
XML
< wsdl:types > < xs:schema targetNamespace = "http://example.com/sample" xmlns:xs = "http://www.w3.org/2001/XMLSchema" > < xs:element name = "Person" > < xs:complexType > < xs:sequence > < xs:element name = "FirstName" type = "xs:string" /> < xs:element name = "LastName" type = "xs:string" /> < xs:element name = "Age" type = "xs:int" /> < xs:element name = "Address" > < xs:complexType > < xs:sequence > < xs:element name = "Street" type = "xs:string" /> < xs:element name = "City" type = "xs:string" /> < xs:element name = "ZipCode" type = "xs:string" /> </ xs:sequence > </ xs:complexType > </ xs:element > </ xs:sequence > </ xs:complexType > </ xs:element > </ xs:schema > </ wsdl:types > |
Example 2: The WSDL (Web Services Description Language) defines a currency conversion web service with a single operation named “GetConversionRate.” It specifies a request message “ConversionRateRequestMessage” with two parameters, “FromCurrency” and “ToCurrency,” both of type string. The response message “ConversionRateResponseMessage” contains a single element “Rate” of type decimal. The service is bound to a SOAP protocol using HTTP, and the operation expects and produces messages in a literal XML format. The service endpoint is specified as “http://www.example.org/currencyconverter,” and the SOAPAction for the operation is “http://www.example.org/GetConversionRate.”
XML
<? xml version = "1.0" encoding = "UTF-8" ?> < wsdl:definitions xmlns:wsdl = "http://schemas.xmlsoap.org/wsdl/" xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns = "http://www.example.org/" targetNamespace = "http://www.example.org/" > < wsdl:types > < xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema" targetNamespace = "http://www.example.org/" elementFormDefault = "qualified" > < xs:element name = "ConversionRateRequest" > < xs:complexType > < xs:sequence > < xs:element name = "FromCurrency" type = "xs:string" /> < xs:element name = "ToCurrency" type = "xs:string" /> </ xs:sequence > </ xs:complexType > </ xs:element > < xs:element name = "ConversionRateResponse" > < xs:complexType > < xs:sequence > < xs:element name = "Rate" type = "xs:decimal" /> </ xs:sequence > </ xs:complexType > </ xs:element > </ xs:schema > </ wsdl:types > < wsdl:message name = "ConversionRateRequestMessage" > < wsdl:part name = "parameters" element = "tns:ConversionRateRequest" /> </ wsdl:message > < wsdl:message name = "ConversionRateResponseMessage" > < wsdl:part name = "parameters" element = "tns:ConversionRateResponse" /> </ wsdl:message > < wsdl:portType name = "CurrencyConverterPortType" > < wsdl:operation name = "GetConversionRate" > < wsdl:input message = "tns:ConversionRateRequestMessage" /> < wsdl:output message = "tns:ConversionRateResponseMessage" /> </ wsdl:operation > </ wsdl:portType > < wsdl:binding name = "CurrencyConverterBinding" type = "tns:CurrencyConverterPortType" > < soap:binding style = "document" transport = "http://schemas.xmlsoap.org/soap/http" /> < wsdl:operation name = "GetConversionRate" > < soap:operation soapAction = "http://www.example.org/GetConversionRate" /> < wsdl:input > < soap:body use = "literal" /> </ wsdl:input > < wsdl:output > < soap:body use = "literal" /> </ wsdl:output > </ wsdl:operation > </ wsdl:binding > < wsdl:service name = "CurrencyConverterService" > < wsdl:port name = "CurrencyConverterPort" binding = "tns:CurrencyConverterBinding" > < soap:address location = "http://www.example.org/currencyconverter" /> </ wsdl:port > </ wsdl:service > </ wsdl:definitions > |
WSDL Element
The <types> element in Web Services Description Language (WSDL) documents serves as a fundamental building block for the definition and understanding of data types within the context of web services. Its role extends beyond simple declaration, as it provides a structured and standardized means for describing the shape and composition of data that will be transmitted between different components of a distributed system. In this article, we delve into a more detailed explanation of the <types> element in WSDL.