Hi,
you can get the following output:
TicketRS_WS
-getTicketReservation
Request Template
<ns1:getTicketReservationElement xmlns:ns1='http://Euro2012/types/'>
<ns1:PESEL>?XXX?</ns1:PESEL>
<ns1:Data>?XXX?</ns1:Data>
</ns1:getTicketReservationElement>
Response Template
<ns1:getTicketReservationResponseElement xmlns:ns1='http://Euro2012/types/'>
<ns1:result>?XXX?</ns1:result>
</ns1:getTicketReservationResponseElement>
From the following Java program:
package sample.wsdl;
import groovy.xml.MarkupBuilder;
import java.io.StringWriter;
import java.util.List;
import com.predic8.schema.Element;
import com.predic8.schema.creator.SchemaCreator;
import com.predic8.schema.creator.SchemaCreatorContext;
import com.predic8.wsdl.*;
import com.predic8.wstool.creator.RequestCreatorContext;
import com.predic8.wstool.creator.RequestCreatorContextTest;
import com.predic8.wstool.creator.RequestTemplateCreator;
import com.predic8.wstool.creator.RequestTemplateCreatorContext;
import com.predic8.wstool.creator.SOARequestCreator;
public class ListWSDLOperations {
public static void main(String[] args) {
WSDLParser parser = new WSDLParser();
Definitions defs = parser
.parse("resources/TicketRS_WS.wsdl");
for (PortType pt : defs.getPortTypes()) {
System.out.println(pt.getName());
for (Operation op : pt.getOperations()) {
System.out.println(" -" + op.getName());
System.out.println("Request Template");
printTemplate(defs.getElement(op.getInput().getMessage().getParts().get(0).getElement()));
System.out.println();
System.out.println("Response Template");
printTemplate(defs.getElement(op.getOutput().getMessage().getParts().get(0).getElement()));
}
}
}
private static void printTemplate(Element e) {
StringWriter writer = new StringWriter();
RequestTemplateCreator creator = new RequestTemplateCreator();
creator.setBuilder(new MarkupBuilder(writer));
e.create(creator, new RequestTemplateCreatorContext());
System.out.println(writer);
}
}
TicketRS_WS
-getTicketReservation
Request Parameters
PESEL {http://www.w3.org/2001/XMLSchema}string
Data {http://www.w3.org/2001/XMLSchema}string
Response Parameters
result {http://www.w3.org/2001/XMLSchema}string
You can use the following program:
/* Copyright 2012 predic8 GmbH, www.predic8.com
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. */
package sample.wsdl;
import groovy.xml.MarkupBuilder;
import java.io.StringWriter;
import java.util.List;
import com.predic8.schema.ComplexType;
import com.predic8.schema.Element;
import com.predic8.schema.Sequence;
import com.predic8.schema.creator.SchemaCreator;
import com.predic8.schema.creator.SchemaCreatorContext;
import com.predic8.wsdl.*;
import com.predic8.wstool.creator.RequestCreatorContext;
import com.predic8.wstool.creator.RequestCreatorContextTest;
import com.predic8.wstool.creator.RequestTemplateCreator;
import com.predic8.wstool.creator.RequestTemplateCreatorContext;
import com.predic8.wstool.creator.SOARequestCreator;
public class ListWSDLOperations {
public static void main(String[] args) {
WSDLParser parser = new WSDLParser();
Definitions defs = parser.parse("resources/TicketRS_WS.wsdl");
for (PortType pt : defs.getPortTypes()) {
System.out.println(pt.getName());
for (Operation op : pt.getOperations()) {
System.out.println(" -" + op.getName());
System.out.println("Request Parameters");
listParameters(defs.getElement(op.getInput().getMessage()
.getParts().get(0).getElement()));
System.out.println();
System.out.println("Response Parameters");
listParameters(defs.getElement(op.getOutput().getMessage()
.getParts().get(0).getElement()));
}
}
}
private static void listParameters(Element element) {
ComplexType ct = (ComplexType) element.getEmbeddedType();
for (Element e : ct.getSequence().getElements()) {
System.out.println(e.getName() + " " + e.getType());
}
}
}
private static void listParameters(Element element) {
ComplexType ct = (ComplexType) element.getEmbeddedType();
if(ct == null) {
ct = (ComplexType) element.getSchema().getType(element.getType());
}
for (Element e : ct.getSequence().getElements()) {
System.out.println(e.getName() + " " + e.getType());
} }
Hi,
have a look at the previous posts in this thread. There you should find everything to solve that problem. Take the following code as a starting point:
private static void listParameters(Element element) {ComplexType ct = (ComplexType) element.getEmbeddedType();
if(ct == null) {
ct = (ComplexType) element.getSchema().getType(element.getType());
}
for (Element e : ct.getSequence().getElements()) {
System.out.println(e.getName() + " " + e.getType());
} } -- Thomas
--
You received this message because you are subscribed to the Google Groups "Membrane SOA Model" group.
To unsubscribe from this group and stop receiving emails from it, send an email to soa-model+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/soa-model/85cb2431-b79a-4c18-8fb3-0f5d8cdf56bf%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.