I am trying to parse WSDL to get operations, endpoint and payload example. WSDL entered by the user. I can not find a tutorial for this.
I can only find those that generate source code that I don't need. I tried using XBeans, but apparently I need a saxon. Is there a simple easy way to do this without Saxon?
eg.
<?xml version="1.0"?> <definitions name="StockQuote" targetNamespace= "http://example.com/stockquote.wsdl" xmlns:tns="http://example.com/stockquote.wsdl" xmlns:xsd1="http://example.com/stockquote.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <schema targetNamespace= "http://example.com/stockquote.xsd" xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType> <all> <element name="tickerSymbol" type="string"/> </all> </complexType> </element> <element name="TradePrice"> <complexType> <all> <element name="price" type="float"/> </all> </complexType> </element> </schema> </types> <message name="GetLastTradePriceInput"> <part name="body" element= "xsd1:TradePriceRequest"/> </message> <message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/> </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> </portType> <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document" transport= "http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction= "http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="StockQuoteService"> <documentation>My first service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location= "http://example.com/stockquote"/> </port> </service> </definitions>
Must get operations: GetLastTradePrice, GetLastTradePrice
Endpoint: StockQuotePort
Payload Example:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:stoc="http://example.com/stockquote.xsd"> <soapenv:Header/> <soapenv:Body> <stoc:TradePriceRequest/> </soapenv:Body> </soapenv:Envelope>
This is similar to what SoapUI does. But I'm mostly worried about the possibility of WSDL analysis. A little more context: WSDL is loaded, and then the result is displayed in the GWT application (file upload should go to the servlet). So I need to parse the file and create an object that GWT can understand.
source share