WSDL — Web Services Description Language
WSDL is an XML-based standard for describing a web service. A WSDL document (often itself just called a WSDL) describes the available functions of a web service, their expected arguments, and the data types for their return values. WSDLs are used by developers of client applications that consume XML-based web services.
Like all aspects of SOAP technology, WSDLs are not as straightforward as they at first seem. To help guide you through this complex topic, we have collected the best tutorials and other resources available.
- Understanding WSDL is a detailed technical tutorial on WSDL from Microsoft Developer Network.
- Understanding Web Services Specifications: Web Services Description Language (WSDL) is part of a complete tutorial on SOAP from IBM DeveloperWorks. The tutorial includes information on consuming WSDLs, not just creating them, and provides sample code in Java for building a client application.
- Web Services Description Language (WSDL) is part of a tutorial series on Service Oriented Architecture.
- WSDL Tutorial is a thorough, 23-part tutorial that covers both WSDL 1.1 and WSDL 2.0 specifications, and practical advice about creating WSDL in Java.
- XML WSDL is a short tutorial from W3Schools on WSDL, in the context of a larger tutorial on XML and Web Services.
- WSDL Tutorial from Tutorials Point offers a multi-part introduction to WSDL syntax and basic usage.
- Describe REST Web Services With WSDL 2.0 takes you beyond SOAP services.
- WSDL Tutorial explains SOAP web services and WSDL, with example code in Java.
- WSDL 2.0 — Web Service Description Language is a simple, 7-part tutorial on WSDL.
- WSDL Essentials is the WSDL chapter from Web Services Essentials (2002), by Ethan Cerami.
- A Busy Developers Guide to WSDL 1.1 is a practical guide for implementing WSDL within an existing system, with a focus on improving interoperability.
- Deploying Web Services With WSDL is a technical tutorial that focuses on WSDL authoring.
- Anatomy of a Web Service: XML, SOAP and WSDL for Platform-Independent Data Exchange is an easy-to-understand overview of SOAP services, showing how the different pieces (including WSDL) work together.
Additional Learning Materials
- Writing Contract-First Web Services describes a development methodology that starts with XML Schema Documents and WSDL, before application code is written.
- Understanding Overloading in WSDL explains how to describe overloaded functions (functions that behave differently when they receive different types of arguments) in WSDL.
- Which Style of WSDL Should I Use? explores the different options for SOAP binding style and use, and when you might use each type.
- Is WSDL the Indispensable API? is a 2002 JavaWorld article that is indicative of the hype surrounding SOAP and Web Services in that era.
- WSDL: A New XML-Based Web Site Description Language is a master's thesis on WSDL, covering its development, use, and potential. The author found that introducing WSDL to software development organizations improved certain outcomes.
- WSDL Tales From the Trenches is a small collection of relevant "war stories" about implementing WSDL in real situations.
- Web Services Description Language (WSDL) Version 2.0 Part 1 is the official W3C Recommendation for WSDL 2.0.
- Web Services Description Language (WSDL) 1.1 is the 1.1 version of the specification.
- Standard ECMA-348 is the ECMA International standard for WSDL.
- Differences Between WSDL 2.0 and WSDL 1.1 is a handy visual aide, showing the two WSDL standards side-by-side. Most WSDLs in use today follow the 2.0 specification, but if you're working on legacy system, you might need to know the older standard.
- Online WSDL Viewer and Validator allows you to compare and analyze WSDL documents in your browser.
- WSDL to Java is a library from Apache that receives a WSDL document as input and then generates annotated Java code that implements the service it describes.
- Wsdlpull is a C++ web services client library that includes a WSDL parser. It lets you invoke web services directly from the command line.
- Wsdl2go is a command line tool that generates a Go application skeleton from a WSDL. Go developers should also check out Goat.
WSDL itself is too narrow a topic to warrant any full scale books. However, there are a number of excellent books on the larger topics of SOAP and XML-based web services. The following books include substantial coverage of WSDL.
- SOA in Practice: The Art of Distributed System Design (2007), by Nicolai Josuttis is a strategic, rather than highly technical, look at service oriented architecture (SOA). This is a good place to strat if you are a business decision maker trying to figure out how SOAP, WSDL, and other XML technologies can benefit your organization.
- UDDI, SOAP, and WSDL: The Web Services Specification Reference Book (2002), by Aaron Walsh covers the major XML-related specifications, giving you an understanding of how these technologies relate to each other.
- Perspectives on Web Services: Applying SOAP, WSDL and UDDI to Real-World Projects (2003; reprinted in 2013)), by Zimmermann, Tomlinson, and Peuser is a practical guide to building Web Services, with a focus on IBM WebSphere. There's a bit of marketing hype here, but also lots of good information about how to apply theory to practical development tasks.
- Building Web Services with Java: Making Sense of XML, SOAP, WSDL, and UDDI (2004) by Graham et al is a major reference work on the topics, written by people heavily involved with the development of the technology and standards.
Should I Learn WSDL?
The WSDL standard hasn't been update since 2002, and most of the current attention related to web services is on trendier topics like RESTful interfaces and JSON.
However, WSDL is still an important technology, and continues to be in heavy use in large enterprise and government software systems.
So, if you work in those industries, or develop using the tools those industries prefer — Java and .NET, primarily — then yes, you probably should. There's a strong overlap in those technologies with SOAP and XML.
Further Reading and Resources
We have more guides, tutorials, and infographics related to web development:
- XML Resources & Validators: learn all about one of the most important structured data description languages.
- HTML for Beginners — Ultimate Guide: if you want to learn how to hand-code HTML, this really is the ultimate guide.
- CSS3 — Intro, Guides & Resources: learn the details of webpage layout with this introduction and detailed list of resources.
Ultimate Guide to Web Hosting
If you are going to be creating web applications, chances are that you are going to need to host them somewhere. Check out our Ultimate Guide to Web Hosting. It will explain everything you need to know in order to make an informed choice.