|
Deriving SOAP, by Ali Solehdin
WSJ Vol 01 Issue 01 - pg.33
Listing 1
<Envelope> þ Root element for well-formed XML
<Header>
<AddRoute>http://mysecondfavoriteretailer.com</AddRoute>
</Header>
<Body>
<PlaceOrder>
<ItemName>Lightsaver</ItemName>
<ItemNumber>21382</ItemNumber>
<Quantity>2</Quantity>
<CustomerName>Luke Skywalker</CustomerName>
<CreditCardType>Visa</CreditCardType>
<CreditCardNumber>1234567890</CreditCardNumber>
</PlaceOrder>
</Body>
</Envelope>
Listing 2
<Envelope>
<Header>
<AddRoute>http://mysecondfavoriteretailer.com</AddRoute>
</Header>
<Body>
<PlaceOrder>
<ItemInfo> þ Compound Type
<ItemName>Lightsaver</ItemName>
<ItemNumber>21382</ItemNumber>
<Quantity>2</Quantity>
</ItemInfo>
<CustomerInfo> þ Compound Type
<CustomerName>Luke Skywalker</CustomerName>
<CreditCardType>Visa</CreditCardType>
<CreditCardNumber>1234567890</CreditCardNumber>
</CustomerInfo>
</PlaceOrder>
</Body>
</Envelope>
Listing 3
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope">
<SOAP-ENV:Header>
<myRetailers:AddRetailer xmlns:myRetailers="http:// myserver.com/retailers">
http://www.mysecondfavoriteretailer.com
</myRetailers:AddRetailer>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<MyMethod:PlaceOrderxmlns:MyMethod="http://
myserver.com">
<ItemInfo>
<ItemName>Lightsaver</ItemName>
<ItemNumber>21382</ItemNumber>
<Quantity>2</Quantity>
</ItemInfo>
<CustomerInfo>
<CustomerName>Luke Skywalker</CustomerName>
<CreditCardType>Visa</CreditCardType>
<CreditCardNumber>1234567890</CreditCardNumber>
</CustomerInfo>
</MyMethod:PlaceOrder>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Listing 4
<pHead href="#Card1" /> Reference to head of list
<PaymentNode id="Card1" root="1"> Define head of list
<CreditCardType>Visa</CreditCardType>
<CreditCardNumber>1234567890</CreditCardNumber>
<pNextNode href="#Card2" />
</PaymentNode>
<PaymentNode id="Card2">
<CreditCardType>MasterCard</CreditCardType>
<CreditCardNumber>0987654321</CreditCardNumber>
<pNextNode href="#Card3" />
</PaymentNode>
<PaymentNode id="Card3" />
<CreditCardType>AMEX</CreditCardType>
<CreditCardNumber>1122334455
</CreditCardNumber>
<pNextNode null="1" /> Designate last node
</PaymentNode>
Listing 5
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope">
<SOAP-ENV:Header>
<myRetailers:AddRetailerxmlns:myRetailers="http://
myserver.com/retailers">
http://www.mysecondfavoriteretailer.com
</myRetailers:AddRetailer>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<MyMethod:PlaceOrderxmlns:MyMethod="http://
myserver.com">
<ItemInfo>
<ItemName>Lightsaver</ItemName>
<ItemNumber>21382</ItemNumber>
<Quantity>2</Quantity>
</ItemInfo>
<CustomerName>Luke Skywalker</CustomerName>
<pHead href="#Card1" />
</MyMethod:PlaceOrder>
<MyMethod:PaymentNode id="Card1" SOAP-ENV:root="1">
<CreditCardType>Visa</CreditCardType>
<CreditCardNumber>1234567890</CreditCardNumber>
<pNextNode href="#Card2" />
</MyMethod:PaymentNode>
<MyMethod:PaymentNode id="Card2">
<CreditCardType>MasterCard</CreditCardType>
<CreditCardNumber>0987654321</CreditCardNumber>
<pNextNode href="#Card3" />
</MyMethod:PaymentNode>
<MyMethod:PaymentNode id="Card3">
<CreditCardType>AMEX</CreditCardType>
<CreditCardNumber>1122334455</CreditCardNumber>
<pNextNode null="1"/>
</MyMethod:PaymentNode>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Listing 6
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
<xsd:element name="ItemName" type="xsd:string"/>
<xsd:element name="ItemNumber" type="xsd:int"/>
<xsd:element name="Quantity" type="xsd:int"/>
<xsd:element name="CustomerName" type="xsd:string"/>
<xsd:element name="CreditCardType" type="xsd:string"/>
<xsd:element name="CreditCardNumber" type="xsd:int"/>
<xsd:complexType name="ItemInfo">
<xsd:sequence>
<xsd:element ref="ItemName"/>
<xsd:element ref="ItemNumber"/>
<xsd:element ref="Quantity"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CustomerInfo">
<xsd:sequence>
<xsd:element ref="CustomerName"/>
<xsd:element ref="CreditCardType"/>
<xsd:element ref="CreditCardNumber"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Listing 7
<SOAP-ENV:Envelope xmlns:SOAPENV="http://
schemas.xmlsoap.org/soap/envelope"
xmlns:xsd="http://www.w3.org/2000/10/XMLSchema" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-Instance">
<SOAP-ENV:Header>
<myRetailers:AddRetailerxmlns:myRetailers="http://
myserver.com/retailers">
http://www.mysecondfavoriteretailer.com
</myRetailers:AddRetailer>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<MyMethod:PlaceOrderxmlns:MyMethod="http://
myserver.com">
<ItemName xsi:type="xsd:string">Lightsaver</ItemName>
<ItemNumber xsi:type="xsd:int">21382</ItemNumber>
<Quantity xsi:type="xsd:int">2</Quantity>
<CustomerName xsi:type="xsd:string">Luke Skywalker</CustomerName>
<CreditCardTypexsi:type="xsd:string">Visa</CreditCardType>
<CreditCardNumberxsi:type="xsd:int">1234567890
</CreditCardNumber>
</MyMethod:PlaceOrder>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
|