Serving SOAP Documentation from WSDL
Problem
You are using SOAP and WSDL to build a service-based enterprise architecture. You want developers to be able to find complete and pertinent information on available services.
Solution
This solution constructs a
WSDL-based service
documentation server: a service that provides information about
services.[29] This example will use a Perl-based CGI that invokes XSLT
processing on a single WSDL file containing or including information
about all services available in an enterprise. Here the CGI invokes
the XSLT processor in a system
call. This clumsy
setup is good for prototyping but not production use. A better
solution would use the Perl modules XML::LibXML
and XML::LibXSLT
. An even better architecture
would use a more sophisticated server-side XSLT-enabled solution such
as Cocoon. To focus
on the XSLT and WSDL aspects of this example, and not the CGI
architecture, we took a simplistic approach.
The site’s main page is generated by a CGI that shows the user available services and ports. See the discussion for explanations of services and ports. It uses the following Perl CGI frontend to Saxon:
#!c:/perl/bin/perl print "Content-type: text/html\n\n" ; system "saxon StockServices.wsdl wsdlServiceList.xslt" ;
The transformation builds a form containing all available services, ports, bindings, and port types:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" ...
Get XSLT Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.