WSDL Tutorials - Herong's Tutorial Examples - v2.22, by Herong Yang
WodenHelloElement.java - Testing WSDL 2.0 Elements
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 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:
herong> javac -cp .;\local\axis2\lib\* WodenHelloElement.java herong> java -cp .;\local\axis2\lib\* WodenHelloElement WARNING: An illegal reflective access operation has occurred Description object: org.apache.woden.internal.wsdl20.DescriptionImpl First service name: {https://www.herongyang.com/Service/}helloService First binding name: {https://www.herongyang.com/Service/}helloBinding First binding type: http://www.w3.org/ns/wsdl/soap First interface: {https://www.herongyang.com/Service/}helloInterface First operation name: {https://www.herongyang.com/Service/}Hello First operation pattern: http://www.w3.org/ns/wsdl/in-out Types system: http://www.w3.org/2001/XMLSchema
Cool. The element model is also easy to use.
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
Using WSDL Document in Java Apache Axis2/Java for WSDL
►Apache Woden for WSDL Documents in Java
What Is Apache Woden - WSDL Parser API
Java API for WSDL 2.0 Component Model
WodenHelloComponent.java - Testing WSDL 2.0 Components
Java API for WSDL 2.0 Element Model
►WodenHelloElement.java - Testing WSDL 2.0 Elements
Wsdl20Validator.java - WSDL 2.0 Validator
WSDL 2.0-2 Adjuncts Not Supported by Woden API
Convert WSDL 1.1 to 2.0 with Woden API
SoapUI - Web Service Testing Tool
WSDL 1.1 Document Structure and Syntax
WSDL 1.1 Binding Extension for SOAP 1.1
SoapUI as WSDL 1.1 Testing Tool
WSDL 1.1 and SOAP 1.1 Examples - Document and RPC Styles
PHP SOAP Extension for WSDL 1.1
Apache Axis2/Java for WSDL 1.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