HomeDigital EditionSys-Con RadioSearch Web Services Cd
B2B Beginning WS Business Process Management Case Studies Content Management Distributing Computing e-Business Electronic Data Interchange Enterprise Industry Insight Integration Interviews Java & Web Services .NET Portal Product Reviews Scalability & Performance Security SOAP Source Code UDDI Wireless WS Standards WS Tips & Techniques WSDL WS Editorials XML

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>