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