スキーマを参照する以下の wsdl があります。wsdl に従って、以下の要求および応答 xml を使用できます。私が欲しいのは、リクエスト用とレスポンスxml用の2セットのスキーマを持つことです。trade.wsdl をスキーマに変換する必要があると思います。1 つは要求用、もう 1 つは応答用です。これらのスキーマのセットを使用したいのですが、xml を生成する場合 (Eclipse のオプションのように、スキーマから xml を生成する)、要求と応答 xml の同じコピーを取得できるはずです (スキーマのセットを使用)応答のため)。
リクエスト用とレスポンス用に wsdl をスキーマに変換する方法はありますか? この場合、trade.wsdl にいくつかの変更を加えて、traderequest.xsd (次に trade.xsd を参照する) のような 1 つのセットと、別のセット traderesponse.xsd (次に trade.xsd を参照する) を用意する必要があります。
trade.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://com.joemo.schema.tradeservice"
xmlns="http://com.joemo.schema.tradeservice"
xmlns:tr="http://com.joemo.schema.trade"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xsd:schema targetNamespace="http://com.joemo.schema.tradeservice">
<xsd:import namespace="http://com.joemo.schema.trade" schemaLocation="trade.xsd" />
</xsd:schema>
</wsdl:types>
<wsdl:message name="tradeInput">
<wsdl:part name="trade" element="tr:trade" />
</wsdl:message>
<wsdl:message name="tradeOutput">
<wsdl:part name="status" element="tr:status" />
</wsdl:message>
<wsdl:portType name="TradeService">
<wsdl:operation name="book">
<wsdl:input message="tradeInput" />
<wsdl:output message="tradeOutput" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TradeServiceHTTPBinding" type="TradeService">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="book">
<wsdlsoap:operation soapAction="" />
<wsdl:input>
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output>
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TradeServicePorts">
<wsdl:port binding="TradeServiceHTTPBinding" name="TradeService">
<wsdlsoap:address
location="http://localhost:9084/tradeService/TradeServicePorts" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
トレード.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://com.joemo.schema.trade" xmlns="http://com.joemo.schema.trade"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- web service input types -->
<xsd:element name="trade">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="security" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="quantity" type="xsd:integer" minOccurs="1" maxOccurs="1" />
<xsd:element name="comments" type="comment" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="comment">
<xsd:sequence>
<xsd:element name="message" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="author" type="xsd:string" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<!-- web service output types -->
<xsd:element name="status">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:string" minOccurs="1" maxOccurs="1" />
<xsd:element name="message" type="xsd:string" minOccurs="1" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
リクエストxml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://com.joemo.schema.trade">
<soapenv:Header/>
<soapenv:Body>
<com:trade>
<security>?</security>
<quantity>?</quantity>
<!--1 or more repetitions:-->
<comments>
<message>?</message>
<author>?</author>
</comments>
</com:trade>
</soapenv:Body>
</soapenv:Envelope>
応答xml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://com.joemo.schema.trade">
<soapenv:Header/>
<soapenv:Body>
<com:status>
<id>?</id>
<message>?</message>
</com:status>
</soapenv:Body>
</soapenv:Envelope>