WSDL Tutorials - Herong's Tutorial Examples - Version 2.03, by Dr. Herong Yang
WSDL 2.0 Element Model Test
This section provided a tutorial example on how to create a WSDLReader to parse a WSDL 2.0 document into WSDL element objects.
To see how the Element model works, I wrote this testing program to parse my WSDL 2.0 document, Hello_WSDL_20_SOAP.wsdl, into elements:
/** * WodenHelloElement.java * Copyright (c) 2009 by Dr. Herong Yang, herongyang.com * All rights reserved */ import java.io.PrintStream; import org.apache.woden.WSDLFactory; import org.apache.woden.WSDLReader; import org.apache.woden.wsdl20.Description; import org.apache.woden.wsdl20.xml.DescriptionElement; import org.apache.woden.wsdl20.xml.ServiceElement; import org.apache.woden.wsdl20.xml.BindingElement; import org.apache.woden.wsdl20.xml.InterfaceElement; import org.apache.woden.wsdl20.xml.InterfaceOperationElement; import org.apache.woden.wsdl20.xml.TypesElement; class WodenHelloElement { public static void main(String[] args) { PrintStream out = System.out; String wsdl = "file:///C:/herong/Hello_WSDL_20_SOAP.wsdl"; try { // Loading the WSDL 2.0 document WSDLFactory wFactory = WSDLFactory.newInstance(); WSDLReader wReader = wFactory.newWSDLReader(); wReader.setFeature(WSDLReader.FEATURE_VALIDATION, true); Description wDescription = wReader.readWSDL(wsdl); // Converting the document from Component model to Element model DescriptionElement eDescription = wDescription.toElement(); // Implementation class information out.println("Description object: " +eDescription.getClass().getName()); // Getting WSDL 2.0 document elements ServiceElement[] serviceList = eDescription.getServiceElements(); out.println("First service name: " +serviceList[0].getName()); BindingElement[] bindingList = eDescription.getBindingElements(); out.println("First binding name: " +bindingList[0].getName()); out.println("First binding type: " +bindingList[0].getType().toString()); InterfaceElement[] interfaceList = eDescription.getInterfaceElements(); out.println("First interface name: " +interfaceList[0].getName()); InterfaceOperationElement[] operationList = interfaceList[0].getInterfaceOperationElements(); out.println("First operation name: " +operationList[0].getName()); out.println("First operation pattern: " +operationList[0].getPattern().toString()); out.println("First operation style: " +operationList[0].getStyle()[0].toString()); TypesElement eTypes = eDescription.getTypesElement(); out.println("Types system: "+eTypes.getTypeSystem()); } catch (Exception e) { e.printStackTrace(); } } }
Result of this test program is listed below:
C:\herong>\local\jdk\bin\java -Djava.ext.dirs=\local\axis2\lib\ WodenHelloElement Description object: org.apache.woden.internal.wsdl20.DescriptionImpl First service name: {http://www.herongyang.com/Service/}helloService First binding name: {http://www.herongyang.com/Service/}helloBinding First binding type: http://www.w3.org/ns/wsdl/soap First interface: {http://www.herongyang.com/Service/}helloInterface First operation name: {http://www.herongyang.com/Service/}Hello First operation pattern: http://www.w3.org/ns/wsdl/in-out First operation style: http://www.w3.org/ns/wsdl/style/iri Types system: http://www.w3.org/2001/XMLSchema
Cool. The element model is also easy to use.
Last update: 2009.
Table of Contents
WSDL 2.0 Document Structure and Syntax
WSDL Version 2.0 Part 2: Adjuncts
WSDL 2.0 Document Examples with SOAP Binding
►WSDL 20 Programming APIs and Testing Tools
ServiceClient Class Loading WSDL 2.0 Documents
WSDL2Java Converting WSDL 2.0 Documents to Stub Classes
WSDL 2.0 Component Model - Test
WSDL 1.1 Document Structure and Syntax
WSDL 1.1 Binding Extension for SOAP 1.1
soapUI 3.0.1 - Web Service Testing Tool
WSDL 1.1 and SOAP 1.1 Examples - Document and RPC Styles
PHP SOAP Extension in PHP 5.3.1
Using WSDL in Perl with SOAP::Lite 0.710
Using WSDL Document in Java with Axis2 1.4.1
Using WSDL2Java to Generate Web Service Stub Classes
WSDL 1.1 Binding Extension for SOAP 1.2
WSDL 1.1 and SOAP 1.2 Examples - Document and RPC Styles