180 likes | 315 Views
Homework 3. Ed Kaszubowski. Timing. Assignment Rcvd Mon, Feb 26 th Due in 2 weeks – Mon, Mar 12 th Didn’t work on it in week 1 Didn’t get the Reschedule message in-time In week 2…. Timing. Early in week…Travel to Vendor site…. Timing. When we got there, there was some drinking…. Timing.
E N D
Homework 3 Ed Kaszubowski
Timing • Assignment Rcvd Mon, Feb 26th • Due in 2 weeks – Mon, Mar 12th • Didn’t work on it in week 1 • Didn’t get the Reschedule message in-time • In week 2…
Timing • Early in week…Travel to Vendor site…
Timing • When we got there, there was some drinking…
Timing • Then I got sick…
Timing • The second night with the vendor brought more drinking
Timing • From the vendor visit, I went directly to meet my girlfriend’s parents… • Which is a bit stressful…
Timing • Finally…. • Finished late late late Sunday night… • So here goes:
WSDL #1 – RPC / Encoded <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:hw1="http://www.cccis.com/ejk_hw1"xmlns:this="http://www.cccis.com/ejk_service1" targetNamespace="http://www.cccis.com/ejk_service1"> <wsdl:types> <xs:schema targetNamespace="http://www.cccis.com/ejk_service1" elementFormDefault="qualified"> <xs:import namespace="http://www.cccis.com/ejk_hw1" schemaLocation="homework1.xsd"/> </xs:schema> </wsdl:types> <wsdl:message name="hw1_input"> <wsdl:part name="amount" type="xs:decimal"/> <wsdl:part name="rate" type="xs:decimal"/> <wsdl:part name="taxes" type="xs:decimal"/> <wsdl:part name="assess" type="xs:decimal"/> <wsdl:part name="term" type="xs:integer"/> </wsdl:message> <wsdl:message name="hw1_output"> <wsdl:part name="PaymentTable" type="hw1:payTable"/> </wsdl:message> <wsdl:portType name="hw1PortType"> <wsdl:operation name="hw1Operation"> <wsdl:input message="this:hw1_input"/> <wsdl:output message="this:hw1_output"/> </wsdl:operation> </wsdl:portType>
WSDL #1 – RPC / Encoded (cont) <wsdl:binding name="hw1Binding" type="this:hw1PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="hw1Operation"> <soap:operation soapAction="go" style="rpc"/> <wsdl:input> <soap:body parts="amount rate taxes assess term" use="encoded" namespace="http://www.cccis.com/ejk_service1"/> </wsdl:input> <wsdl:output> <soap:body use="encoded" namespace="http://www.cccis.com/ejk_service1"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="service1"> <wsdl:port name="hw1Port" binding="this:hw1Binding"> <soap:address location="none"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
WSDL #1 – RPC / Encoded (cont) Sample Request Message (generated by xmlspy) <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <m:hw1Operation xmlns:m="http://www.cccis.com/ejk_service1"> <amount xsi:type="xsd:decimal">0.0</amount> <rate xsi:type="xsd:decimal">0.0</rate> <taxes xsi:type="xsd:decimal">0.0</taxes> <assess xsi:type="xsd:decimal">0.0</assess> <term xsi:type="xsd:integer">0</term> </m:hw1Operation> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
WSDL #1 – RPC / Encoded (cont) Sample Response Message (hand-written) <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:m0="http://www.cccis.com/ejk_hw1"> <SOAP-ENV:Body> <m:hw1Output xmlns:m="http://www.cccis.com/ejk_service1"> <m0:PaymentTable xsi:type="m0:payTable"> <m0:payment_amount xsi:type="xsd:decimal">1.0</m0:payment_amount> <m0:taxes_assess xsi:type="xsd:decimal">0</m0:taxes_assess> <m0:payment_line xsi:type="m0:payment_lineType" ID="1"> <m0:balance xsi:type="xsd:decimal">1.0</m0:balance> <m0:interest_paid xsi:type="xsd:decimal">1.0</m0:interest_paid> <m0:principal_paid xsi:type="xsd:decimal">1.0</m0:principal_paid> <m0:new_balance xsi:type="xsd:decimal">1.12</m0:new_balance> <m0:tax_break xsi:type="xsd:decimal">1.0</m0:tax_break> <m0:break_even_rent xsi:type="xsd:decimal">1.0</m0:break_even_rent> </m0:payment_line> </m0:PaymentTable> </m:hw1Output> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
WSDL #1 – Document/Literal (cont) Sample Request Message (generated by xmlspy) <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <m:hw1_InputElement xmlns:m="http://www.cccis.com/ejk_service1"> <m:amount>0.0</m:amount> <m:rate>0.0</m:rate> <m:taxes>0.0</m:taxes> <m:assess>0.0</m:assess> <m:term>0</m:term> </m:hw1_InputElement> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
WSDL #1 – Document/Literal (cont) Sample Response Message (hand-written) <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:m0="http://www.cccis.com/ejk_hw1"> <SOAP-ENV:Body> <m:hw1Output xmlns:m="http://www.cccis.com/ejk_service1"> <m0:PaymentTable> <m0:payment_amount>0.0</m0:payment_amount> <m0:taxes_assess>0.0</m0:taxes_assess> <m0:payment_line id="1"> <m0:balance>0.0</m0:balance> <m0:interest_paid>0.0</m0:interest_paid> <m0:principal_paid>0.0</m0:principal_paid> <m0:new_balance>0.0</m0:new_balance> <m0:tax_break>0.0</m0:tax_break> <m0:break_even_rent>0.0</m0:break_even_rent> </m0:payment_line> </m0:PaymentTable> </m:hw1Output> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
WSDL #2 • Mostly more of the same…. • Slight differences: • xml inputs and xml outputs • a need for more namespaces • Fairly simple message setups
WSDL #2 (cont) <wsdl:types> <xs:schema targetNamespace="http://www.cccis.com/ejk_service2" elementFormDefault="qualified"> <xs:import namespace="http://www.cccis.com/ejk_hw1" schemaLocation="homework1.xsd"/> <xs:import namespace="http://www.cccis.com/ejk_hw2" schemaLocation="homework2.xsd"/> <xs:import namespace="http://www.cccis.com/ejk_curr" schemaLocation="homework2incl.xsd"/> </xs:schema> </wsdl:types> RPC <wsdl:message name="hw2_input"> <wsdl:part name="PaymentTable" type="hw1:payTable"/> </wsdl:message> <wsdl:message name="hw2_output"> <wsdl:part name="rootnode" type="hw2:hw2_transform"/> </wsdl:message> DOC <wsdl:message name="hw2_input"> <wsdl:part name="inputPart" element="hw1:PaymentTable"/> </wsdl:message> <wsdl:message name="hw2_output"> <wsdl:part name="outputPart" element="hw2:rootnode"/> </wsdl:message>
Finally… • WSDL #3 – no new techniques • Had to modify some xsd files with HW1 and HW2 • WS-I compliant? • That’s It!!!