OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ws-caf-implement message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Shopping Cart Context


Hi,
My apologies for taking so long to send this.  Unfortunately I was
temporarily reassigned to a high priority project here at Oracle and
will not be attending the F2F.  However, per our last meeting I had an
action item to describe the contents of the shopping cart and how they
are to be propagated in the Context.

First, a quick overview of the demo system:

Each ws-ctx implementation participating in the demo is known as a
store.  All stores participating in the demo are aware of each others
location (i.e. the location of all the webservice endpoints).  How this
awareness is achieved is not my concern for now... it can be static or
dynamic (for example WS-I Sample Apps uses a uddi registry).  Each store
must have a unique id known as the store id (we'll need this for
referencing and mapping stores).  A user can browse any of the stores
for a catalog of items.  He adds items to his cart from as many stores
as he desires and then checks out from any store.

Details:
A context is started once a user issues the addToCart operation for the
first time.  Here is the addToCart operation (this has been added to the
Retailer.wsdl):

<wsdl:operation name="addItemToCart">
            <wsdl:input message="tns:addItemToCartRequest"
name="additemToCartRequest"/>
            <wsdl:output message="tns:addItemToCartResponse"
name="addItemToCartResponse"/>
        </wsdl:operation>

The outbound message also contains the Context in the header (this is
done in the wsdl binding, not shown).  addItemToCart contains the Item
to add to the cart.  If the input message contains a context in the
header, then the item will be added to the <xsd:any> element of that
context.  This can be done by an ALS or by the context itself.  Here is
the propose xml structure for the <xsd:any> in the demo's context.  This
structure can be known as the cart:

<xsd:complexType name="shoppingCart">
	    <xsd:sequence>
	        <xsd:element name="item" type="tns:PartsOrderItem"
minOccurs="0" maxOccurs="unbounded"/>
	    </xsd:sequence>
	</xsd:complexType>

Note that only the items need to be stored in this element, the context
identifier and timeout etc are stored in the context itself.  I've added
this new structure to PartsOrder.xsd (attached).  
Note that store id's are encoded in the PartsOrderItem (this is also a
new addition):

<xsd:complexType name="PartsOrderItem">
		<xsd:sequence>
			<xsd:element name="productNumber" type="tns:productNumber"
minOccurs="1" maxOccurs="1"/>
			<xsd:element name="quantity" type="xsd:nonNegativeInteger"
minOccurs="1" maxOccurs="1"/>
			<xsd:element name="price"    type="xsd:decimal" minOccurs="1"
maxOccurs="1"/>
			<xsd:element name="storeId" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>

This storeId can be used at checkout time.  At checkout time the user
app will issue a submitOrder.  Here is the submitOrder operation:

<wsdl:operation name="submitOrder">
            <wsdl:documentation>Accept an order for quantities of
multiple products</wsdl:documentation>
            <wsdl:input message="tns:submitOrderRequest"
name="submitOrderRequest"/>
            <wsdl:output message="tns:submitOrderResponse"
name="submitOrderResponse"/>
            <wsdl:fault name="BadOrder" message="tns:BadOrderFault"/>
            <wsdl:fault name="InvalidProductCode"
message="tns:InvalidProductCodeFault"/>
        </wsdl:operation>  

The submitOrderRequest must contain the Context in the header. 
Carefully read the attached Retailer wsdl because I've changed this
operation considerably.  The response should return a Context in the
header and also a list of orders that can be viewed as a receipt.  Here
is this structure (two types):

<xsd:complexType name="PartsOrderResponseType">
		<xsd:sequence>
			<xsd:element name="Item" type="tns:PartsOrderResponseItem"
maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="PartsOrderResponseItem">
		<xsd:sequence>
			<xsd:element name="productNumber" type="tns:productNumber"
minOccurs="1" maxOccurs="1"/>
			<xsd:element name="quantity" type="xsd:nonNegativeInteger"
minOccurs="1" maxOccurs="1"/>
			<xsd:element name="price"    type="xsd:decimal" minOccurs="1"
maxOccurs="1"/>
			<xsd:element name="comment"  type="xsd:string" minOccurs="0"
maxOccurs="1"/>
			<xsd:element name="storeId" type="xsd:string" minOccurs="1"
maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType> 

Note that each of these response items has the storeId which is used to
track the store where the item was purchased.  Also note, this structure
may resemble the same structure for request, but they are very
different.  For example, quantity in the response, means quantity that
can be fulfilled not quantity requested.  For the context demo I think
we should ignore this... I believe it will come in handy once we start
to demo the transactional parts of ws-caf.

I have attached all the wsdls and schemas with these types.  I believe
this will generate a lot of questions and discussions... looking forward
to it.  Overall I hope you find this email helpful.

Cheers,
Simeon
<?xml version="1.0" encoding="utf-8"?>

<!--
	September 14, 2002

	(c) Copyright 2002, The Web Services-Interoperability Organization (WS-I)
	Download or use of this file is governed by the Policies and Bylaws of WS-I.

	For more information, send email info@ws-i.org. 	
-->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified" 
      xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailCatalog.xsd"; 
targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailCatalog.xsd";>
	<xsd:annotation>
		<xsd:documentation xml:lang="en">Catalog schema for Retailer component of WS-I</xsd:documentation>
	</xsd:annotation>
	<xsd:element name="catalog" type="tns:CatalogType"/>
	<xsd:element name="comment" type="xsd:string"/>
	<xsd:complexType name="CatalogType">
		<xsd:sequence>
			<xsd:element name="Item" type="tns:CatalogItem" maxOccurs="10"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="CatalogItem">
		<xsd:sequence>
			<xsd:element name="name"          type="xsd:string" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="description"   type="xsd:string" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="productNumber" type="tns:productNumber" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="category"      type="xsd:string" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="brand"         type="xsd:string" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="price"         type="xsd:decimal" minOccurs="1" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="productNumber">
		<xsd:restriction base="xsd:integer">
			<xsd:minInclusive value="1"/>
			<xsd:maxInclusive value="999999"/>
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>
<?xml version="1.0" encoding="utf-8" ?>

<!--
	September 14, 2002

	(c) Copyright 2002, The Web Services-Interoperability Organization (WS-I)
	Download or use of this file is governed by the Policies and Bylaws of WS-I.

	For more information, send email info@ws-i.org. 	
-->
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
    xmlns:xs="http://www.w3.org/2001/XMLSchema";      
    xmlns:cat="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailCatalog.xsd";
    xmlns:order="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailOrder.xsd";
    xmlns:wsctx="http://www.webservicestransactions.org/schemas/wsctx/2003/03";
    xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl";
    targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl";
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns="http://schemas.xmlsoap.org/wsdl/"; xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/";>
    <wsdl:documentation> This WSDL document describes the Retailer service for the WS-I Basic Sample
        Application. This service is part of a supply chain management system. It is used to
        demonstrate a web service that is conformant with the Basic Profile and to show how
        different web service platforms can interoperate.</wsdl:documentation>    
    <wsdl:types>
        <xs:schema>
            <xs:import
                namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailCatalog.xsd"; schemaLocation="RetailCatalog.xsd"/>
            <xs:import
                namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailOrder.xsd"; schemaLocation="RetailOrder.xsd"/>
            <xs:import namespace="http://www.webservicestransactions.org/schemas/wsctx/2003/03"; schemaLocation="wsctx.xsd"/>                
        </xs:schema>        
    </wsdl:types>
    <wsdl:message name="ContextMessage">
		<wsdl:part name="content" element="wsctx:context"/>
	</wsdl:message>
    <wsdl:message name="getCatalogRequest"/>
    <wsdl:message name="getCatalogResponse">
        <wsdl:part name="return" type="cat:CatalogType">
            <wsdl:documentation>the product catalog</wsdl:documentation>
        </wsdl:part>
    </wsdl:message>            
    <wsdl:message name="submitOrderRequest">        
        <wsdl:part name="CustomerDetails" type="order:CustomerDetailsType"/>
    </wsdl:message>
    <wsdl:message name="submitOrderResponse">
        <wsdl:part name="return" type="order:PartsOrderResponseType">
            <wsdl:documentation>XML structure holding product/quantity ordered pairs, with optional
                failure message</wsdl:documentation>
        </wsdl:part>
    </wsdl:message>
    <wsdl:message name="addItemToCartRequest">
        <wsdl:part name="ItemAdd" type="order:PartsOrderItem"/>                     
     </wsdl:message>
     <wsdl:message name="addItemToCartResponse"/>     
    <wsdl:message name="BadOrderFault">
        <wsdl:part name="Reason" element="order:BadOrderReason"/>
    </wsdl:message>
    <wsdl:message name="InvalidProductCodeFault">
        <wsdl:part name="InvalidProductCode" element="order:InvalidProductCode"/>
    </wsdl:message>
    <wsdl:portType name="RetailerPortType">
        <wsdl:operation name="getCatalog">
            <wsdl:documentation>returns a product catalog</wsdl:documentation>
            <wsdl:input message="tns:getCatalogRequest" name="getCatalogRequest"/>
            <wsdl:output message="tns:getCatalogResponse" name="getCatalogResponse"/>
        </wsdl:operation>
        <wsdl:operation name="submitOrder">
            <wsdl:documentation>Accept an order for quantities of multiple products</wsdl:documentation>
            <wsdl:input message="tns:submitOrderRequest" name="submitOrderRequest"/>
            <wsdl:output message="tns:submitOrderResponse" name="submitOrderResponse"/>
            <wsdl:fault name="BadOrder" message="tns:BadOrderFault"/>
            <wsdl:fault name="InvalidProductCode" message="tns:InvalidProductCodeFault"/>
        </wsdl:operation>  
        <wsdl:operation name="addItemToCart">
            <wsdl:input message="tns:addItemToCartRequest" name="additemToCartRequest"/>
            <wsdl:output message="tns:addItemToCartResponse" name="addItemToCartResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="RetailerSoapBinding" type="tns:RetailerPortType">
        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="getCatalog">
            <soap:operation soapAction="" style="rpc"/>
            <wsdl:input>
                <soap:body use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="submitOrder">
            <soap:operation soapAction="" style="rpc"/>
            <wsdl:input>
                <soap:body use="literal"
                    namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl"; parts="PartsOrder CustomerDetails"/>
                <soap:header use="literal" part="content" message="tns:ContextMessage"/>                    
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl"/>
                <soap:header use="literal" part="content" message="tns:ContextMessage"/>
            </wsdl:output>
            <wsdl:fault name="BadOrder">
                <soap:fault name="BadOrder" use="literal"/>
            </wsdl:fault>
            <wsdl:fault name="InvalidProductCode">
                <soap:fault name="InvalidProductCode" use="literal"/>
            </wsdl:fault>
        </wsdl:operation>
        <wsdl:operation name="addItemToCart">
            <soap:operation soapAction="" style="rpc"/>
            <wsdl:input>
                <soap:body use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl"/>               
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl"/>
                <soap:header use="literal" part="content" message="tns:ContextMessage"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    
</wsdl:definitions>
<!-- The following is an example of a getCatalog SOAP request message compliant with the above WSDL:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";>
<SOAP-ENV:Body>
<ns1:getCatalog xmlns:ns1="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl";>
</ns1:getCatalog>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

The following is an example of a getCatalog SOAP response message compliant with the above WSDL:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";>
<SOAP-ENV:Body>
<ns1:getCatalogResponse xmlns:ns1="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl";>
<return>
  <Item xmlns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailCatalog.xsd";>
    <name>TV,Brand1</name>
    <description>24", Color, Advanced Velocit Scan Modular</description>
    <productNumber>605001</productNumber>
    <category>TV</category>
    <brand>Brand1</brand>
    <price>299.95</price>
  </Item>
  <Item xmlns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailCatalog.xsd";>
    <name>TV, Brand2</name>
    <description>32", Super Slim Flat Panel Plasma</description>
    <productNumber>605002</productNumber>
    <category>TV</category>
    <brand>Brand2</brand>
    <price>1499.99</price>
  </Item>
</return>
</ns1:getCatalogResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>



The following is an example of a submitOrder SOAP request message compliant with the above WSDL:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";>
<SOAP-ENV:Header>
<h:Configuration
	xmlns:h="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Configuration.xsd";>
  <h:UserId>griddell@bowstreet.com</h:UserId>
  <h:ServiceUrl Role="LoggingFacility">http://example1/SampleApp/SCM/LoggingFacility</h:ServiceUrl>
  <h:ServiceUrl Role="Retailer">http://example2/wsi/soaprpc/wsi/RetailerImpl</h:ServiceUrl>
  <h:ServiceUrl Role="WarehouseA">http://example3/wsi/soaprpc/wsi/WarehouseAImpl</h:ServiceUrl>
  <h:ServiceUrl Role="WarehouseB">http://example4/wsi/soaprpc/wsi/WarehouseBImpl</h:ServiceUrl>
  <h:ServiceUrl Role="WarehouseC">http://example5/wsi/soaprpc/wsi/WarehouseCImpl</h:ServiceUrl>
  <h:ServiceUrl Role="ManufacturerA">http://example6/ws-i_sample/ManufacturerA</h:ServiceUrl>
  <h:ServiceUrl Role="ManufacturerB">http://example7/ws-i_sample/ManufacturerB</h:ServiceUrl>
  <h:ServiceUrl Role="ManufacturerC">http://example8/ws-i_sample/ManufacturerC</h:ServiceUrl>
</h:Configuration>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:submitOrder xmlns:ns1="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl";>
<PartsOrder xmlns:p="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailOrder.xsd";>
  <p:Item>
    <p:productNumber>605006</p:productNumber>
    <p:quantity>182</p:quantity>
    <p:price>3.99</p:price>
  </p:Item>
  <p:Item><p:productNumber>605002</p:productNumber>
    <p:quantity>4</p:quantity>
    <p:price>3.99</p:price>
    </p:Item>
  <p:Item>
    <p:productNumber>605003</p:productNumber>
    <p:quantity>82</p:quantity>
    <p:price>7.99</p:price>
  </p:Item>
</PartsOrder>
<CustomerDetails xmlns:c="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailOrder.xsd";> 
  <c:custnbr>ABCD999999999EFG</c:custnbr>
  <c:name>Joe Bloggs</c:name>
  <c:street1 />
  <c:city />
  <c:state>NH</c:state>
  <c:zip>03870</c:zip>
  <c:country>USA</c:country>
</CustomerDetails>
</ns1:submitOrder>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

The following is an example of a submitOrder SOAP response message that is compliant with the WSDL:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";>
<SOAP-ENV:Body>
<ns1:submitOrderResponse xmlns:ns1="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl";>
<return xmlns:ns2="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailOrder.xsd";>
  <ns2:Item>
    <ns2:productNumber>605002</ns2:productNumber>
    <ns2:quantity>4</ns2:quantity>
    <ns2:price>3.99</ns2:price>
    <ns2:comment>in stock from WarehouseA</ns2:comment>
  </ns2:Item>
  <ns2:Item>
    <ns2:productNumber>605006</ns2:productNumber>
    <ns2:quantity>0</ns2:quantity>
    <ns2:price>0</ns2:price>
    <ns2:comment>insufficient stock</ns2:comment>
  </ns2:Item>
  <ns2:Item>
    <ns2:productNumber>605003</ns2:productNumber>
    <ns2:quantity>0</ns2:quantity>
    <ns2:price>0</ns2:price>
    <ns2:comment>insufficient stock</ns2:comment>
  </ns2:Item>
</return>
</ns1:submitOrderResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


-->
<?xml version="1.0" encoding="utf-8"?>

<!--
	November 14, 2002

	(c) Copyright 2002, The Web Services-Interoperability Organization (WS-I)
	Download or use of this file is governed by the Policies and Bylaws of WS-I.

	For more information, send email info@ws-i.org. 	
-->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified"
      xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailOrder.xsd"; 
targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/RetailOrder.xsd";>
	<xsd:annotation>
		<xsd:documentation xml:lang="en">Definition of PartsOrder types for Retailer component of WS-I</xsd:documentation>
	</xsd:annotation>
	<xsd:complexType name="PartsOrderType">
		<xsd:sequence>
			<xsd:element name="Item" type="tns:PartsOrderItem" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="PartsOrderItem">
		<xsd:sequence>
			<xsd:element name="productNumber" type="tns:productNumber" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="quantity" type="xsd:nonNegativeInteger" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="price"    type="xsd:decimal" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="storeId" type="xsd:string" minOccurs="1" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="PartsOrderResponseType">
		<xsd:sequence>
			<xsd:element name="Item" type="tns:PartsOrderResponseItem" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="PartsOrderResponseItem">
		<xsd:sequence>
			<xsd:element name="productNumber" type="tns:productNumber" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="quantity" type="xsd:nonNegativeInteger" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="price"    type="xsd:decimal" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="comment"  type="xsd:string" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="storeId" type="xsd:string" minOccurs="1" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="CustomerDetailsType">
		<xsd:sequence>
			<xsd:element name="custnbr"  type="tns:CustomerReferenceType" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="name"     type="xsd:string" minOccurs="1" maxOccurs="1"/>
			<xsd:element name="street1"  type="xsd:string" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="street2"  type="xsd:string" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="city"     type="xsd:string" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="state"    type="xsd:string" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="zip"      type="xsd:string" minOccurs="0" maxOccurs="1"/>
			<xsd:element name="country"  type="xsd:string" minOccurs="0" maxOccurs="1"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:simpleType name="productNumber">
		<xsd:restriction base="xsd:integer">
			<xsd:minInclusive value="1"/>
			<xsd:maxInclusive value="999999"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="CustomerReferenceType">
		<xsd:restriction base="xsd:normalizedString">
			<xsd:maxLength value="20"/>
			<xsd:pattern value="[A-D][0-9]{5}-[0-9A-Z]{7}-[a-z]{3}#*"/>
		</xsd:restriction>
	</xsd:simpleType>	
	<xsd:element name="InvalidProductCode" type="tns:InvalidProductCodeType"/>
	<xsd:complexType name="InvalidProductCodeType">
		<xsd:sequence>
			<xsd:element name="Reason">
				<xsd:simpleType>
					<xsd:restriction base="xsd:NMTOKEN">
						<xsd:enumeration value="InvalidProductCode"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="ProductNumber" type="tns:productNumber" />
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="BadOrderReason" type="xsd:string"/>
	<xsd:complexType name="shoppingCart">
	    <xsd:sequence>
	        <xsd:element name="item" type="tns:PartsOrderItem" minOccurs="0" maxOccurs="unbounded"/>
	    </xsd:sequence>
	</xsd:complexType>
</xsd:schema>


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]