Patch adding Amazon Search to beagle



Hello Folks,

I was planning on adding Wikipedia search but well this is my first time
doing C# so I have tried something easier.

This is a patch against today's CVS that will search Amazon
(Books,Music,DVD) using Amazon Web Services. A subscription is needed,
you can find more information at http://webservices.amazon.com. 

Also the documentation of the API can be found at
http://www.amazon.com/gp/aws/sdk/002-6407382-9675247?

Regarding the subscription, someone should look at the licence and see
if the same subscription key could be use for the whole project.

Basically it is a rip off of GoogleSearch, just updated accordingly. 

Thus you have to put your SubscriptionId in an environment variable
AMAZON_SUBSCRIPTION_ID.

Since I don't know anything about C# I am still missing a bunch of
stuff:
	Did not figure out how to display the Cover Art as an Icon in Best.
	Did not figure out how to get the Editorial Review to be used for
snippet.
	How is the score working (I was using SalesRank but the score are too
high...)

Hope this will be useful. If you have links to provide so I can learn C#
I will take them.

Keep on the good work on this great idea.

Jerome "poitch" Poichet
When only code matters
Key fingerprint = CF22 CE30 3223 8940 5849 5828 E08B CD06 A28D 2C59
Key ID = A28D2C59
-- random quote --
Q: How many Harvard MBA's does it take to screw in a light bulb? A: Just
one. He grasps it firmly and the universe revolves around him.
diff -urN beagle/Util/AWSECommerceService.wsdl beagle-amazon/Util/AWSECommerceService.wsdl
--- beagle/Util/AWSECommerceService.wsdl	1969-12-31 16:00:00 -0800
+++ beagle-amazon/Util/AWSECommerceService.wsdl	2004-10-21 16:14:31 -0700
@@ -0,0 +1,2193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:tns="http://webservices.amazon.com/AWSECommerceService/2004-10-19"; targetNamespace="http://webservices.amazon.com/AWSECommerceService/2004-10-19";>
+    <types>
+	<xs:schema targetNamespace="http://webservices.amazon.com/AWSECommerceService/2004-10-19"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:tns="http://webservices.amazon.com/AWSECommerceService/2004-10-19"; elementFormDefault="qualified">
+		<xs:element name="Help">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:HelpRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:HelpRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="HelpRequest">
+			<xs:sequence>
+				<xs:element name="About" type="xs:string" maxOccurs="unbounded"/>
+				<xs:element name="HelpType" minOccurs="0">
+					<xs:simpleType>
+						<xs:restriction base="xs:string">
+							<xs:enumeration value="Operation"/>
+							<xs:enumeration value="ResponseGroup"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="ItemSearch">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:ItemSearchRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:ItemSearchRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="ItemSearchRequest">
+			<xs:sequence>
+				<xs:element name="Actor" type="xs:string" minOccurs="0"/>
+				<xs:element name="Artist" type="xs:string" minOccurs="0"/>
+				<xs:element ref="tns:AudienceRating" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="Author" type="xs:string" minOccurs="0"/>
+				<xs:element name="Brand" type="xs:string" minOccurs="0"/>
+				<xs:element name="BrowseNode" type="xs:string" minOccurs="0"/>
+				<xs:element name="City" type="xs:string" minOccurs="0"/>
+				<xs:element name="Composer" type="xs:string" minOccurs="0"/>
+				<xs:element ref="tns:Condition" minOccurs="0"/>
+				<xs:element name="Conductor" type="xs:string" minOccurs="0"/>
+				<xs:element name="Count" type="xs:positiveInteger" minOccurs="0">
+					<xs:annotation>
+						<xs:appinfo>
+							<aws-se:restricted xmlns:aws-se="http://webservices.amazon.com/AWS-SchemaExtensions";>
+								<aws-se:excludeFrom>public</aws-se:excludeFrom>
+								<aws-se:excludeFrom>partner</aws-se:excludeFrom>
+							</aws-se:restricted>
+						</xs:appinfo>
+					</xs:annotation>
+				</xs:element>
+				<xs:element name="Cuisine" type="xs:string" minOccurs="0"/>
+				<xs:element ref="tns:DeliveryMethod" minOccurs="0"/>
+				<xs:element name="Director" type="xs:string" minOccurs="0"/>
+				<xs:element name="ISPUPostalCode" type="xs:string" minOccurs="0"/>
+				<xs:element name="ItemPage" type="xs:positiveInteger" minOccurs="0"/>
+				<xs:element name="Keywords" type="xs:string" minOccurs="0"/>
+				<xs:element name="Manufacturer" type="xs:string" minOccurs="0"/>
+				<xs:element name="MaximumPrice" type="xs:nonNegativeInteger" minOccurs="0"/>
+				<xs:element name="MerchantId" type="xs:string" minOccurs="0"/>
+				<xs:element name="MinimumPrice" type="xs:nonNegativeInteger" minOccurs="0"/>
+				<xs:element name="MusicLabel" type="xs:string" minOccurs="0"/>
+				<xs:element name="Neighborhood" type="xs:string" minOccurs="0"/>
+				<xs:element name="Orchestra" type="xs:string" minOccurs="0"/>
+				<xs:element name="PostalCode" type="xs:string" minOccurs="0"/>
+				<xs:element name="Power" type="xs:string" minOccurs="0"/>
+				<xs:element name="Publisher" type="xs:string" minOccurs="0"/>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="SearchIndex" type="xs:string" minOccurs="0"/>
+				<xs:element name="Sort" type="xs:string" minOccurs="0"/>
+				<xs:element name="State" type="xs:string" minOccurs="0"/>
+				<xs:element name="TextStream" type="xs:string" minOccurs="0"/>
+				<xs:element name="Title" type="xs:string" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="ItemLookup">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:ItemLookupRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:ItemLookupRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="ItemLookupRequest">
+			<xs:sequence>
+				<xs:element ref="tns:Condition" minOccurs="0"/>
+				<xs:element ref="tns:DeliveryMethod" minOccurs="0"/>
+				<xs:element name="IdType" minOccurs="0">
+					<xs:simpleType>
+						<xs:restriction base="xs:string">
+							<xs:enumeration value="ASIN"/>
+							<xs:enumeration value="UPC"/>
+							<xs:enumeration value="SKU"/>
+							<xs:enumeration value="EAN"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
+				<xs:element name="ISPUPostalCode" type="xs:string" minOccurs="0"/>
+				<xs:element name="MerchantId" type="xs:string" minOccurs="0"/>
+				<xs:element name="OfferPage" type="xs:positiveInteger" minOccurs="0"/>
+				<xs:element name="ItemId" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="ReviewPage" type="xs:positiveInteger" minOccurs="0"/>
+				<xs:element name="SearchIndex" type="xs:string" minOccurs="0"/>
+				<xs:element name="SearchInsideKeywords" type="xs:string" minOccurs="0">
+					<xs:annotation>
+						<xs:appinfo>
+							<aws-se:restricted xmlns:aws-se="http://webservices.amazon.com/AWS-SchemaExtensions";>
+								<aws-se:excludeFrom>public</aws-se:excludeFrom>
+								<aws-se:excludeFrom>partner</aws-se:excludeFrom>
+							</aws-se:restricted>
+						</xs:appinfo>
+					</xs:annotation>
+				</xs:element>
+				<xs:element name="VariationPage" type="xs:positiveInteger" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="ListSearch">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:ListSearchRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:ListSearchRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="ListSearchRequest">
+			<xs:sequence>
+				<xs:element name="City" type="xs:string" minOccurs="0"/>
+				<xs:element name="Email" type="xs:string" minOccurs="0"/>
+				<xs:element name="FirstName" type="xs:string" minOccurs="0"/>
+				<xs:element name="LastName" type="xs:string" minOccurs="0"/>
+				<xs:element name="ListPage" type="xs:positiveInteger" minOccurs="0"/>
+				<xs:element name="ListType">
+					<xs:simpleType>
+						<xs:restriction base="xs:string">
+							<xs:enumeration value="WishList"/>
+							<xs:enumeration value="WeddingRegistry"/>
+							<xs:enumeration value="BabyRegistry"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
+				<xs:element name="Name" type="xs:string" minOccurs="0"/>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="State" type="xs:string" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="ListLookup">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:ListLookupRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:ListLookupRequest" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="ListLookupRequest">
+			<xs:sequence>
+				<xs:element ref="tns:Condition" minOccurs="0"/>
+				<xs:element ref="tns:DeliveryMethod" minOccurs="0"/>
+				<xs:element name="ISPUPostalCode" type="xs:string" minOccurs="0"/>
+				<xs:element name="ListId" type="xs:string" minOccurs="0"/>
+				<xs:element name="ListType" minOccurs="0">
+					<xs:simpleType>
+						<xs:restriction base="xs:string">
+							<xs:enumeration value="WishList"/>
+							<xs:enumeration value="Listmania"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
+				<xs:element name="MerchantId" type="xs:string" minOccurs="0"/>
+				<xs:element name="ProductGroup" type="xs:string" minOccurs="0"/>
+				<xs:element name="ProductPage" type="xs:positiveInteger" minOccurs="0"/>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="Sort" type="xs:string" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="CustomerContentSearch">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:CustomerContentSearchRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:CustomerContentSearchRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="CustomerContentSearchRequest">
+			<xs:sequence>
+				<xs:element name="CustomerPage" type="xs:positiveInteger" minOccurs="0"/>
+				<xs:element name="Email" type="xs:string" minOccurs="0"/>
+				<xs:element name="Name" type="xs:string" minOccurs="0"/>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="CustomerContentLookup">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:CustomerContentLookupRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:CustomerContentLookupRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="CustomerContentLookupRequest">
+			<xs:sequence>
+				<xs:element name="CustomerId" type="xs:string" minOccurs="0"/>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="ReviewPage" type="xs:positiveInteger" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="SimilarityLookup">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:SimilarityLookupRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:SimilarityLookupRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="SimilarityLookupRequest">
+			<xs:sequence>
+				<xs:element ref="tns:Condition" minOccurs="0"/>
+				<xs:element ref="tns:DeliveryMethod" minOccurs="0"/>
+				<xs:element name="ItemId" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="ISPUPostalCode" type="xs:string" minOccurs="0"/>
+				<xs:element name="MerchantId" type="xs:string" minOccurs="0"/>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="SimilarityType" minOccurs="0">
+					<xs:simpleType>
+						<xs:restriction base="xs:string">
+							<xs:enumeration value="Intersection"/>
+							<xs:enumeration value="Random"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="SellerLookup">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:SellerLookupRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:SellerLookupRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="SellerLookupRequest">
+			<xs:sequence>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="SellerId" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="FeedbackPage" type="xs:positiveInteger" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="CartGet">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:CartGetRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:CartGetRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="CartGetRequest">
+			<xs:sequence>
+				<xs:element name="CartId" type="xs:string" minOccurs="0"/>
+				<xs:element name="HMAC" type="xs:string" minOccurs="0"/>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="CartAdd">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:CartAddRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:CartAddRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="CartAddRequest">
+			<xs:sequence>
+				<xs:element name="CartId" type="xs:string" minOccurs="0"/>
+				<xs:element name="HMAC" type="xs:string" minOccurs="0"/>
+				<xs:element name="Items" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="Item" minOccurs="0" maxOccurs="unbounded">
+								<xs:complexType>
+									<xs:sequence>
+										<xs:element name="ASIN" type="xs:string" minOccurs="0"/>
+										<xs:element name="OfferListingId" type="xs:string" minOccurs="0"/>
+										<xs:element name="Quantity" type="xs:positiveInteger" minOccurs="0"/>
+									</xs:sequence>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="CartCreate">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:CartCreateRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:CartCreateRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="CartCreateRequest">
+			<xs:sequence>
+				<xs:element name="Items" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="Item" minOccurs="0" maxOccurs="unbounded">
+								<xs:complexType>
+									<xs:sequence>
+										<xs:element name="ASIN" type="xs:string" minOccurs="0"/>
+										<xs:element name="OfferListingId" type="xs:string" minOccurs="0"/>
+										<xs:element name="Quantity" type="xs:positiveInteger" minOccurs="0"/>
+									</xs:sequence>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="CartModify">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:CartModifyRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:CartModifyRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="CartModifyRequest">
+			<xs:sequence>
+				<xs:element name="CartId" type="xs:string" minOccurs="0"/>
+				<xs:element name="HMAC" type="xs:string" minOccurs="0"/>
+				<xs:element name="Items" minOccurs="0">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="Item" minOccurs="0" maxOccurs="unbounded">
+								<xs:complexType>
+									<xs:sequence>
+										<xs:element name="Action" minOccurs="0">
+											<xs:simpleType>
+												<xs:restriction base="xs:string">
+													<xs:enumeration value="MoveToCart"/>
+													<xs:enumeration value="SaveForLater"/>
+												</xs:restriction>
+											</xs:simpleType>
+										</xs:element>
+										<xs:element name="CartItemId" type="xs:string" minOccurs="0"/>
+										<xs:element name="Quantity" type="xs:nonNegativeInteger" minOccurs="0"/>
+									</xs:sequence>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="CartClear">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:CartClearRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:CartClearRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="CartClearRequest">
+			<xs:sequence>
+				<xs:element name="CartId" type="xs:string" minOccurs="0"/>
+				<xs:element name="HMAC" type="xs:string" minOccurs="0"/>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="TransactionLookup">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:TransactionLookupRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:TransactionLookupRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="TransactionLookupRequest">
+			<xs:sequence>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="TransactionId" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="SellerListingSearch">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:SellerListingSearchRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:SellerListingSearchRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="SellerListingSearchRequest">
+			<xs:sequence>
+				<xs:element name="BrowseNode" type="xs:string" minOccurs="0"/>
+				<xs:element name="Country" type="xs:string" minOccurs="0"/>
+				<xs:element name="Keywords" type="xs:string" minOccurs="0"/>
+				<xs:element name="ListingPage" type="xs:positiveInteger" minOccurs="0"/>
+				<xs:element name="OfferStatus" minOccurs="0">
+					<xs:simpleType>
+						<xs:restriction base="xs:string">
+							<xs:enumeration value="Open"/>
+							<xs:enumeration value="Closed"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
+				<xs:element name="PostalCode" type="xs:string" minOccurs="0"/>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+				<xs:element name="SearchIndex" type="xs:string" minOccurs="0"/>
+				<xs:element name="SellerId" type="xs:string" minOccurs="0"/>
+				<xs:element name="ShipOption" minOccurs="0">
+					<xs:simpleType>
+						<xs:restriction base="xs:string">
+							<xs:enumeration value="ShipTo"/>
+							<xs:enumeration value="ShipFrom"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
+				<xs:element name="Sort" type="xs:string" minOccurs="0"/>
+				<xs:element name="Title" type="xs:string" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="SellerListingLookup">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:SellerListingLookupRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:SellerListingLookupRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="SellerListingLookupRequest">
+			<xs:sequence>
+				<xs:element name="Id" type="xs:string" minOccurs="0"/>
+				<xs:element name="IdType" minOccurs="0">
+					<xs:simpleType>
+						<xs:restriction base="xs:string">
+							<xs:enumeration value="Exchange"/>
+							<xs:enumeration value="Listing"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:element>
+				<xs:element name="ResponseGroup" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="BrowseNodeLookup">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SubscriptionId" type="xs:string" minOccurs="0"/>
+					<xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="Validate" type="xs:string" minOccurs="0"/>
+					<xs:element name="XMLEscaping" type="xs:string" minOccurs="0"/>
+					<xs:element name="Shared" type="tns:BrowseNodeLookupRequest" minOccurs="0"/>
+					<xs:element name="Request" type="tns:BrowseNodeLookupRequest" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="BrowseNodeLookupRequest">
+			<xs:sequence>
+				<xs:element name="BrowseNodeId" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="Condition">
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:enumeration value="All"/>
+					<xs:enumeration value="New"/>
+					<xs:enumeration value="Used"/>
+					<xs:enumeration value="Collectible"/>
+					<xs:enumeration value="Refurbished"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:element>
+		<xs:element name="DeliveryMethod">
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:enumeration value="Ship"/>
+					<xs:enumeration value="ISPU"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:element>
+		<xs:element name="AudienceRating">
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:enumeration value="G"/>
+					<xs:enumeration value="PG"/>
+					<xs:enumeration value="PG-13"/>
+					<xs:enumeration value="R"/>
+					<xs:enumeration value="NC-17"/>
+					<xs:enumeration value="NR"/>
+					<xs:enumeration value="Unrated"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:element>
+		<xs:element name="MultiOperation">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:Help" minOccurs="0"/>
+					<xs:element ref="tns:ItemSearch" minOccurs="0"/>
+					<xs:element ref="tns:ItemLookup" minOccurs="0"/>
+					<xs:element ref="tns:ListSearch" minOccurs="0"/>
+					<xs:element ref="tns:ListLookup" minOccurs="0"/>
+					<xs:element ref="tns:CustomerContentSearch" minOccurs="0"/>
+					<xs:element ref="tns:CustomerContentLookup" minOccurs="0"/>
+					<xs:element ref="tns:SimilarityLookup" minOccurs="0"/>
+					<xs:element ref="tns:SellerLookup" minOccurs="0"/>
+					<xs:element ref="tns:CartGet" minOccurs="0"/>
+					<xs:element ref="tns:CartAdd" minOccurs="0"/>
+					<xs:element ref="tns:CartCreate" minOccurs="0"/>
+					<xs:element ref="tns:CartModify" minOccurs="0"/>
+					<xs:element ref="tns:CartClear" minOccurs="0"/>
+					<xs:element ref="tns:TransactionLookup" minOccurs="0"/>
+					<xs:element ref="tns:SellerListingSearch" minOccurs="0"/>
+					<xs:element ref="tns:SellerListingLookup" minOccurs="0"/>
+					<xs:element ref="tns:BrowseNodeLookup" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="HelpResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Information" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="ItemSearchResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Items" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="ItemLookupResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Items" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="ListSearchResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Lists" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="ListLookupResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Lists" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="CustomerContentSearchResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Customers" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="CustomerContentLookupResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Customers" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="SimilarityLookupResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Items" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="SellerLookupResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Sellers" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="CartGetResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Cart" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="CartAddResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Cart" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="CartCreateResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Cart" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="CartModifyResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Cart" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="CartClearResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Cart" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="TransactionLookupResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:Transactions" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="SellerListingSearchResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:SellerListings" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="SellerListingLookupResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:SellerListings" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="BrowseNodeLookupResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:BrowseNodes" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="MultiOperationResponse">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:OperationRequest" minOccurs="0"/>
+					<xs:element ref="tns:HelpResponse" minOccurs="0"/>
+					<xs:element ref="tns:ItemSearchResponse" minOccurs="0"/>
+					<xs:element ref="tns:ItemLookupResponse" minOccurs="0"/>
+					<xs:element ref="tns:ListSearchResponse" minOccurs="0"/>
+					<xs:element ref="tns:ListLookupResponse" minOccurs="0"/>
+					<xs:element ref="tns:CustomerContentSearchResponse" minOccurs="0"/>
+					<xs:element ref="tns:CustomerContentLookupResponse" minOccurs="0"/>
+					<xs:element ref="tns:SimilarityLookupResponse" minOccurs="0"/>
+					<xs:element ref="tns:SellerLookupResponse" minOccurs="0"/>
+					<xs:element ref="tns:CartGetResponse" minOccurs="0"/>
+					<xs:element ref="tns:CartAddResponse" minOccurs="0"/>
+					<xs:element ref="tns:CartCreateResponse" minOccurs="0"/>
+					<xs:element ref="tns:CartModifyResponse" minOccurs="0"/>
+					<xs:element ref="tns:CartClearResponse" minOccurs="0"/>
+					<xs:element ref="tns:TransactionLookupResponse" minOccurs="0"/>
+					<xs:element ref="tns:SellerListingSearchResponse" minOccurs="0"/>
+					<xs:element ref="tns:SellerListingLookupResponse" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="OperationRequest">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:HTTPHeaders" minOccurs="0"/>
+					<xs:element name="RequestId" type="xs:string" minOccurs="0"/>
+					<xs:element ref="tns:Arguments" minOccurs="0"/>
+					<xs:element ref="tns:Errors" minOccurs="0"/>
+					<xs:element name="RequestProcessingTime" type="xs:float" minOccurs="0" maxOccurs="1"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Request">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="IsValid" type="xs:string" minOccurs="0"/>
+					<xs:element name="HelpRequest" type="tns:HelpRequest" minOccurs="0"/>
+					<xs:element name="ItemSearchRequest" type="tns:ItemSearchRequest" minOccurs="0"/>
+					<xs:element name="ItemLookupRequest" type="tns:ItemLookupRequest" minOccurs="0"/>
+					<xs:element name="ListSearchRequest" type="tns:ListSearchRequest" minOccurs="0"/>
+					<xs:element name="ListLookupRequest" type="tns:ListLookupRequest" minOccurs="0"/>
+					<xs:element name="CustomerContentSearchRequest" type="tns:CustomerContentSearchRequest" minOccurs="0"/>
+					<xs:element name="CustomerContentLookupRequest" type="tns:CustomerContentLookupRequest" minOccurs="0"/>
+					<xs:element name="SimilarityLookupRequest" type="tns:SimilarityLookupRequest" minOccurs="0"/>
+					<xs:element name="CartGetRequest" type="tns:CartGetRequest" minOccurs="0"/>
+					<xs:element name="CartAddRequest" type="tns:CartAddRequest" minOccurs="0"/>
+					<xs:element name="CartCreateRequest" type="tns:CartCreateRequest" minOccurs="0"/>
+					<xs:element name="CartModifyRequest" type="tns:CartModifyRequest" minOccurs="0"/>
+					<xs:element name="CartClearRequest" type="tns:CartClearRequest" minOccurs="0"/>
+					<xs:element name="TransactionLookupRequest" type="tns:TransactionLookupRequest" minOccurs="0"/>
+					<xs:element name="SellerListingSearchRequest" type="tns:SellerListingSearchRequest" minOccurs="0"/>
+					<xs:element name="SellerListingLookupRequest" type="tns:SellerListingLookupRequest" minOccurs="0"/>
+					<xs:element name="SellerLookupRequest" type="tns:SellerLookupRequest" minOccurs="0"/>
+					<xs:element ref="tns:Errors" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Arguments">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="Argument" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:attribute name="Name" type="xs:string" use="required"/>
+							<xs:attribute name="Value" type="xs:string" use="required"/>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="HTTPHeaders">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="Header" minOccurs="0" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:attribute name="Name" type="xs:string" use="required"/>
+							<xs:attribute name="Value" type="xs:string" use="required"/>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Errors">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="Error" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Code" type="xs:string"/>
+								<xs:element name="Message" type="xs:string"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Information">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:Request" minOccurs="0"/>
+					<xs:element ref="tns:OperationInformation" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element ref="tns:ResponseGroupInformation" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Items">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:Request" minOccurs="0"/>
+					<xs:element name="TotalResults" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element ref="tns:SearchResultsMap" minOccurs="0"/>
+					<xs:element ref="tns:Item" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Lists">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:Request" minOccurs="0"/>
+					<xs:element name="TotalResults" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element ref="tns:List" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Customers">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:Request" minOccurs="0"/>
+					<xs:element name="TotalResults" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element ref="tns:Customer" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Cart">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:Request" minOccurs="0"/>
+					<xs:element name="CartId" type="xs:string"/>
+					<xs:element name="HMAC" type="xs:string"/>
+					<xs:element name="PurchaseURL" type="xs:string"/>
+					<xs:element ref="tns:CartItems" minOccurs="0"/>
+					<xs:element ref="tns:SavedForLaterItems" minOccurs="0"/>
+					<xs:element ref="tns:SimilarProducts" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Transactions">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:Request" minOccurs="0"/>
+					<xs:element name="TotalResults" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element ref="tns:Transaction" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Sellers">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:Request" minOccurs="0"/>
+					<xs:element name="TotalResults" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element ref="tns:Seller" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="SellerListings">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:Request" minOccurs="0"/>
+					<xs:element name="TotalResults" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element ref="tns:SellerListing" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="OperationInformation">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="Name" type="xs:string" minOccurs="0"/>
+					<xs:element name="Description" type="xs:string" minOccurs="0"/>
+					<xs:element name="RequiredParameters" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Parameter" type="xs:string" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="AvailableParameters" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Parameter" type="xs:string" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="DefaultResponseGroups" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="ResponseGroup" type="xs:string" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="AvailableResponseGroups" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="ResponseGroup" type="xs:string" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="ResponseGroupInformation">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="Name" type="xs:string" minOccurs="0"/>
+					<xs:element name="CreationDate" type="xs:string" minOccurs="0"/>
+					<xs:element name="ValidOperations" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Operation" type="xs:string" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Elements" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Element" type="xs:string" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="List">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="ListId" type="xs:string"/>
+					<xs:element name="ListURL" type="xs:string" minOccurs="0"/>
+					<xs:element name="RegistryNumber" type="xs:string" minOccurs="0"/>
+					<xs:element name="ListName" type="xs:string"/>
+					<xs:element name="ListType">
+						<xs:simpleType>
+							<xs:restriction base="xs:string">
+								<xs:enumeration value="WishList"/>
+								<xs:enumeration value="WeddingRegistry"/>
+								<xs:enumeration value="BabyRegistry"/>
+								<xs:enumeration value="Listmania"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="TotalItems" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="DateCreated" type="xs:string" minOccurs="0"/>
+					<xs:element name="OccasionDate" type="xs:string" minOccurs="0"/>
+					<xs:element name="CustomerName" type="xs:string" minOccurs="0"/>
+					<xs:element name="PartnerName" type="xs:string" minOccurs="0"/>
+					<xs:element name="AdditionalName" type="xs:string" minOccurs="0"/>
+					<xs:element name="Comment" type="xs:string" minOccurs="0"/>
+					<xs:element name="Image" type="tns:Image" minOccurs="0"/>
+					<xs:element name="AverageRating" type="xs:decimal" minOccurs="0"/>
+					<xs:element name="TotalVotes" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalTimesRead" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element ref="tns:ListItem" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="ListItem">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="ListItemId" type="xs:string" minOccurs="0"/>
+					<xs:element name="DateAdded" type="xs:string" minOccurs="0"/>
+					<xs:element name="Comment" type="xs:string" minOccurs="0"/>
+					<xs:element name="QuantityDesired" type="xs:string" minOccurs="0"/>
+					<xs:element name="QuantityReceived" type="xs:string" minOccurs="0"/>
+					<xs:element ref="tns:Item" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Customer">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="CustomerId" type="xs:string"/>
+					<xs:element name="Nickname" type="xs:string" minOccurs="0"/>
+					<xs:element name="Birthday" type="xs:string" minOccurs="0"/>
+					<xs:element name="WishListId" type="xs:string" minOccurs="0"/>
+					<xs:element name="Location" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="City" type="xs:string" minOccurs="0"/>
+								<xs:element name="State" type="xs:string" minOccurs="0"/>
+								<xs:element name="Country" type="xs:string" minOccurs="0"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Reviews" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="TotalReviews" type="xs:nonNegativeInteger" minOccurs="0"/>
+								<xs:element name="TotalReviewPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+								<xs:element ref="tns:Review" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="SearchResultsMap">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SearchIndex" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="IndexName" type="xs:string"/>
+								<xs:element name="Results" type="xs:nonNegativeInteger" minOccurs="0"/>
+								<xs:element name="Pages" type="xs:nonNegativeInteger" minOccurs="0"/>
+								<xs:element name="RelevanceRank" type="xs:positiveInteger"/>
+								<xs:element name="ASIN" type="xs:string" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Item">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="ASIN" type="xs:string"/>
+					<xs:element ref="tns:Errors" minOccurs="0"/>
+					<xs:element name="DetailPageURL" type="xs:string" minOccurs="0"/>
+					<xs:element name="SalesRank" type="xs:string" minOccurs="0"/>
+					<xs:element name="SmallImage" type="tns:Image" minOccurs="0"/>
+					<xs:element name="MediumImage" type="tns:Image" minOccurs="0"/>
+					<xs:element name="LargeImage" type="tns:Image" minOccurs="0"/>
+					<xs:element ref="tns:ItemAttributes" minOccurs="0"/>
+					<xs:element ref="tns:OfferSummary" minOccurs="0"/>
+					<xs:element ref="tns:Offers" minOccurs="0"/>
+					<xs:element ref="tns:VariationSummary" minOccurs="0"/>
+					<xs:element ref="tns:Variations" minOccurs="0"/>
+					<xs:element ref="tns:CustomerReviews" minOccurs="0"/>
+					<xs:element ref="tns:EditorialReviews" minOccurs="0"/>
+					<xs:element ref="tns:SimilarProducts" minOccurs="0"/>
+					<xs:element ref="tns:SimilarBusinesses" minOccurs="0"/>
+					<xs:element ref="tns:Accessories" minOccurs="0"/>
+					<xs:element ref="tns:Tracks" minOccurs="0"/>
+					<xs:element ref="tns:BrowseNodes" minOccurs="0"/>
+					<xs:element ref="tns:ListmaniaLists" minOccurs="0"/>
+					<xs:element ref="tns:SearchInside" minOccurs="0"/>
+					<xs:element ref="tns:PromotionalTag" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="OfferSummary">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="LowestNewPrice" type="tns:Price" minOccurs="0"/>
+					<xs:element name="LowestUsedPrice" type="tns:Price" minOccurs="0"/>
+					<xs:element name="LowestCollectiblePrice" type="tns:Price" minOccurs="0"/>
+					<xs:element name="LowestRefurbishedPrice" type="tns:Price" minOccurs="0"/>
+					<xs:element name="TotalNew" type="xs:string" minOccurs="0"/>
+					<xs:element name="TotalUsed" type="xs:string" minOccurs="0"/>
+					<xs:element name="TotalCollectible" type="xs:string" minOccurs="0"/>
+					<xs:element name="TotalRefurbished" type="xs:string" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Offers">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="TotalOffers" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalOfferPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element ref="tns:Offer" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Offer">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:Merchant" minOccurs="0"/>
+					<xs:element ref="tns:Seller" minOccurs="0"/>
+					<xs:element name="SmallImage" type="tns:Image" minOccurs="0"/>
+					<xs:element name="MediumImage" type="tns:Image" minOccurs="0"/>
+					<xs:element name="LargeImage" type="tns:Image" minOccurs="0"/>
+					<xs:element ref="tns:OfferAttributes" minOccurs="0"/>
+					<xs:element ref="tns:OfferListing" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="OfferAttributes">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="Condition" type="xs:string" minOccurs="0"/>
+					<xs:element name="SubCondition" type="xs:string" minOccurs="0"/>
+					<xs:element name="ConditionNote" type="xs:string" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Merchant">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="MerchantId" type="xs:string"/>
+					<xs:element name="Name" type="xs:string" minOccurs="0"/>
+					<xs:element name="GlancePage" type="xs:string" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="OfferListing">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="OfferListingId" type="xs:string" minOccurs="0"/>
+					<xs:element name="ExchangeId" type="xs:string" minOccurs="0"/>
+					<xs:element name="Price" type="tns:Price" minOccurs="0"/>
+					<xs:element name="SalePrice" type="tns:Price" minOccurs="0"/>
+					<xs:element name="Availability" type="xs:string" minOccurs="0"/>
+					<xs:element name="ISPUStoreAddress" type="tns:Address" minOccurs="0"/>
+					<xs:element name="ISPUStoreHours" type="xs:string" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="VariationSummary">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="LowestPrice" type="tns:Price" minOccurs="0"/>
+					<xs:element name="HighestPrice" type="tns:Price" minOccurs="0"/>
+					<xs:element name="LowestSalePrice" type="tns:Price" minOccurs="0"/>
+					<xs:element name="HighestSalePrice" type="tns:Price" minOccurs="0"/>
+					<xs:element name="SingleMerchantId" type="xs:string" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Variations">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="TotalVariations" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalVariationPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element ref="tns:Item" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="EditorialReviews">
+			<xs:complexType>
+				<xs:sequence>
+	                                <xs:element name="EditorialReview" type="xs:string" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="CustomerReviews">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="AverageRating" type="xs:decimal" minOccurs="0"/>
+					<xs:element name="TotalReviews" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalReviewPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element ref="tns:Review" minOccurs="0" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Review">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="ASIN" type="xs:string" minOccurs="0"/>
+					<xs:element name="Rating" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="HelpfulVotes" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalVotes" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="Date" type="xs:string" minOccurs="0"/>
+					<xs:element name="Summary" type="xs:string" minOccurs="0"/>
+					<xs:element name="Content" type="xs:string" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Tracks">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="Disc" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Track" maxOccurs="unbounded">
+									<xs:complexType>
+										<xs:simpleContent>
+											<xs:extension base="xs:string">
+												<xs:attribute name="Number" type="xs:positiveInteger" use="required"/>
+											</xs:extension>
+										</xs:simpleContent>
+									</xs:complexType>
+								</xs:element>
+							</xs:sequence>
+							<xs:attribute name="Number" type="xs:positiveInteger" use="required"/>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="SimilarProducts">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SimilarProduct" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="ASIN" type="xs:string" minOccurs="0"/>
+								<xs:element name="Title" type="xs:string" minOccurs="0"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="SimilarBusinesses">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SimilarBusiness" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="ASIN" type="xs:string" minOccurs="0"/>
+								<xs:element name="Title" type="xs:string" minOccurs="0"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Accessories">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="Accessory" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="ASIN" type="xs:string" minOccurs="0"/>
+								<xs:element name="Title" type="xs:string" minOccurs="0"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="BrowseNodes">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element ref="tns:Request" minOccurs="0"/>
+					<xs:element ref="tns:BrowseNode" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="BrowseNode">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="BrowseNodeId" type="xs:string" minOccurs="0"/>
+					<xs:element name="Name" type="xs:string" minOccurs="0"/>
+					<xs:element name="Children" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element ref="tns:BrowseNode" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Ancestors" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element ref="tns:BrowseNode" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="ListmaniaLists">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="ListmaniaList" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="ListId" type="xs:string"/>
+								<xs:element name="ListName" type="xs:string" minOccurs="0"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="SearchInside">
+			<xs:annotation>
+				<xs:appinfo>
+					<aws-se:restricted xmlns:aws-se="http://webservices.amazon.com/AWS-SchemaExtensions";>
+						<aws-se:excludeFrom>public</aws-se:excludeFrom>
+						<aws-se:excludeFrom>partner</aws-se:excludeFrom>
+					</aws-se:restricted>
+				</xs:appinfo>
+			</xs:annotation>
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="TotalExcerpts" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="Excerpt" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Checksum" type="xs:string" minOccurs="0"/>
+								<xs:element name="PageType" type="xs:string" minOccurs="0"/>
+								<xs:element name="PageNumber" type="xs:string" minOccurs="0"/>
+								<xs:element name="SequenceNumber" type="xs:string" minOccurs="0"/>
+								<xs:element name="Text" type="xs:string" minOccurs="0"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="PromotionalTag">
+			<xs:annotation>
+				<xs:appinfo>
+					<aws-se:restricted xmlns:aws-se="http://webservices.amazon.com/AWS-SchemaExtensions";>
+						<aws-se:excludeFrom>public</aws-se:excludeFrom>
+						<aws-se:excludeFrom>partner</aws-se:excludeFrom>
+					</aws-se:restricted>
+				</xs:appinfo>
+			</xs:annotation>
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="PromotionalTag" type="xs:string" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="CartItems">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="CartItem" type="tns:CartItem" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="SavedForLaterItems">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SavedForLaterItem" type="tns:CartItem" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="CartItem">
+			<xs:sequence>
+				<xs:element name="CartItemId" type="xs:string"/>
+				<xs:element name="ASIN" type="xs:string" minOccurs="0"/>
+				<xs:element name="ExchangeId" type="xs:string" minOccurs="0"/>
+				<xs:element name="MerchantId" type="xs:string" minOccurs="0"/>
+				<xs:element name="SellerId" type="xs:string" minOccurs="0"/>
+				<xs:element name="Quantity" type="xs:string"/>
+				<xs:element name="Title" type="xs:string" minOccurs="0"/>
+				<xs:element name="ProductGroup" type="xs:string" minOccurs="0"/>
+				<xs:element name="Price" type="tns:Price" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="Transaction">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="TransactionId" type="xs:string"/>
+					<xs:element name="SellerId" type="xs:string"/>
+					<xs:element name="Condition" type="xs:string"/>
+					<xs:element name="TransactionDate" type="xs:string"/>
+					<xs:element name="TransactionDateEpoch" type="xs:string"/>
+					<xs:element name="SellerName" type="xs:string" minOccurs="0"/>
+					<xs:element name="Totals" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Total" type="tns:Price"/>
+								<xs:element name="Subtotal" type="tns:Price"/>
+								<xs:element name="Tax" type="tns:Price"/>
+								<xs:element name="ShippingCharge" type="tns:Price"/>
+								<xs:element name="Promotion" type="tns:Price"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="TransactionItems" minOccurs="0">
+						<xs:annotation>
+							<xs:appinfo>
+								<aws-se:restricted xmlns:aws-se="http://webservices.amazon.com/AWS-SchemaExtensions";>
+									<aws-se:excludeFrom>public</aws-se:excludeFrom>
+								</aws-se:restricted>
+							</xs:appinfo>
+						</xs:annotation>
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element ref="tns:TransactionItem" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Shipments" minOccurs="0">
+						<xs:annotation>
+							<xs:appinfo>
+								<aws-se:restricted xmlns:aws-se="http://webservices.amazon.com/AWS-SchemaExtensions";>
+									<aws-se:excludeFrom>public</aws-se:excludeFrom>
+								</aws-se:restricted>
+							</xs:appinfo>
+						</xs:annotation>
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Shipment" maxOccurs="unbounded">
+									<xs:complexType>
+										<xs:sequence>
+											<xs:element name="Condition" type="xs:string"/>
+											<xs:element name="DeliveryMethod" type="xs:string"/>
+											<xs:element name="ShipmentItems" minOccurs="0">
+												<xs:complexType>
+													<xs:sequence>
+														<xs:element name="TransactionItemId" maxOccurs="unbounded"/>
+													</xs:sequence>
+												</xs:complexType>
+											</xs:element>
+											<xs:element name="Packages" minOccurs="0">
+												<xs:complexType>
+													<xs:sequence>
+														<xs:element name="Package" maxOccurs="unbounded">
+															<xs:complexType>
+																<xs:sequence>
+																	<xs:element name="TrackingNumber" type="xs:string"/>
+																	<xs:element name="CarrierName" type="xs:string"/>
+																</xs:sequence>
+															</xs:complexType>
+														</xs:element>
+													</xs:sequence>
+												</xs:complexType>
+											</xs:element>
+										</xs:sequence>
+									</xs:complexType>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="TransactionItem">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="TransactionItemId" type="xs:string"/>
+					<xs:element name="Quantity" type="xs:string"/>
+					<xs:element name="UnitPrice" type="tns:Price"/>
+					<xs:element name="TotalPrice" type="tns:Price"/>
+					<xs:element name="ASIN" type="xs:string" minOccurs="0"/>
+					<xs:element name="ChildTransactionItems" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element ref="tns:TransactionItem" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="Seller">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="SellerId" type="xs:string"/>
+					<xs:element name="SellerName" type="xs:string" minOccurs="0"/>
+					<xs:element name="Nickname" type="xs:string" minOccurs="0"/>
+					<xs:element name="GlancePage" type="xs:string" minOccurs="0"/>
+					<xs:element name="About" type="xs:string" minOccurs="0"/>
+					<xs:element name="MoreAbout" type="xs:string" minOccurs="0"/>
+					<xs:element name="Location" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="City" type="xs:string" minOccurs="0"/>
+								<xs:element name="State" type="xs:string" minOccurs="0"/>
+								<xs:element name="Country" type="xs:string" minOccurs="0"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="AverageFeedbackRating" type="xs:decimal" minOccurs="0"/>
+					<xs:element name="TotalFeedback" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalFeedbackPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element ref="tns:SellerFeedback" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:element name="SellerFeedback">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="Feedback" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Rating" type="xs:nonNegativeInteger" minOccurs="0"/>
+								<xs:element name="Comment" type="xs:string" minOccurs="0"/>
+								<xs:element name="Date" type="xs:string" minOccurs="0"/>
+								<xs:element name="RatedBy" type="xs:string" minOccurs="0"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="Address">
+			<xs:sequence>
+				<xs:element name="Name" type="xs:string" minOccurs="0"/>
+				<xs:element name="Address1" type="xs:string" minOccurs="0"/>
+				<xs:element name="Address2" type="xs:string" minOccurs="0"/>
+				<xs:element name="Address3" type="xs:string" minOccurs="0"/>
+				<xs:element name="City" type="xs:string" minOccurs="0"/>
+				<xs:element name="State" type="xs:string" minOccurs="0"/>
+				<xs:element name="PostalCode" type="xs:string" minOccurs="0"/>
+				<xs:element name="Country" type="xs:string" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="SellerListing">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="ExchangeId" type="xs:string" minOccurs="0"/>
+					<xs:element name="ListingId" type="xs:string" minOccurs="0"/>
+					<xs:element name="ASIN" type="xs:string" minOccurs="0"/>
+					<xs:element name="Title" type="xs:string" minOccurs="0"/>
+					<xs:element name="Price" type="tns:Price" minOccurs="0"/>
+					<xs:element name="StartDate" type="xs:string" minOccurs="0"/>
+					<xs:element name="EndDate" type="xs:string" minOccurs="0"/>
+					<xs:element name="Status" type="xs:string" minOccurs="0"/>
+					<xs:element name="Quantity" type="xs:string" minOccurs="0"/>
+					<xs:element name="QuantityAllocated" type="xs:string" minOccurs="0"/>
+					<xs:element name="Condition" type="xs:string" minOccurs="0"/>
+					<xs:element name="SubCondition" type="xs:string" minOccurs="0"/>
+					<xs:element name="ConditionNote" type="xs:string" minOccurs="0"/>
+					<xs:element name="Availability" type="xs:string" minOccurs="0"/>
+					<xs:element name="FeaturedCategory" type="xs:string" minOccurs="0"/>
+					<xs:element ref="tns:Seller" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="Price">
+			<xs:sequence>
+				<xs:element name="Amount" type="xs:integer" minOccurs="0"/>
+				<xs:element name="CurrencyCode" type="xs:string" minOccurs="0"/>
+				<xs:element name="FormattedPrice" type="xs:string"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:complexType name="Image">
+			<xs:sequence>
+				<xs:element name="URL" type="xs:string"/>
+				<xs:element name="Height" type="tns:FloatWithUnits"/>
+				<xs:element name="Width" type="tns:FloatWithUnits"/>
+				<xs:element name="IsVerified" type="xs:string" minOccurs="0"/>
+			</xs:sequence>
+		</xs:complexType>
+		<xs:element name="ItemAttributes">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="Actor" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="Address" type="tns:Address" minOccurs="0"/>
+					<xs:element name="AmazonMaximumAge" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="AmazonMinimumAge" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="ApertureModes" type="xs:string" minOccurs="0"/>
+					<xs:element name="Artist" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="AspectRatio" type="xs:string" minOccurs="0"/>
+					<xs:element name="AudienceRating" type="xs:string" minOccurs="0"/>
+					<xs:element name="AudioFormat" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="Author" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="BackFinding" type="xs:string" minOccurs="0"/>
+					<xs:element name="BandMaterialType" type="xs:string" minOccurs="0"/>
+					<xs:element name="BatteriesIncluded" type="xs:string" minOccurs="0"/>
+					<xs:element name="Batteries" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="BatteryDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="BatteryType" type="xs:string" minOccurs="0"/>
+					<xs:element name="BezelMaterialType" type="xs:string" minOccurs="0"/>
+					<xs:element name="Binding" type="xs:string" minOccurs="0"/>
+					<xs:element name="Brand" type="xs:string" minOccurs="0"/>
+					<xs:element name="CalendarType" type="xs:string" minOccurs="0"/>
+					<xs:element name="CameraManualFeatures" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="CaseDiameter" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="CaseMaterialType" type="xs:string" minOccurs="0"/>
+					<xs:element name="CaseThickness" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="CaseType" type="xs:string" minOccurs="0"/>
+					<xs:element name="CDRWDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="ChainType" type="xs:string" minOccurs="0"/>
+					<xs:element name="ClaspType" type="xs:string" minOccurs="0"/>
+					<xs:element name="ClothingSize" type="xs:string" minOccurs="0"/>
+					<xs:element name="Color" type="xs:string" minOccurs="0"/>
+					<xs:element name="Compatibility" type="xs:string" minOccurs="0"/>
+					<xs:element name="ComputerHardwareType" type="xs:string" minOccurs="0"/>
+					<xs:element name="ComputerPlatform" type="xs:string" minOccurs="0"/>
+					<xs:element name="Connectivity" type="xs:string" minOccurs="0"/>
+					<xs:element name="ContinuousShootingSpeed" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="Country" type="xs:string" minOccurs="0"/>
+					<xs:element name="CPUManufacturer" type="xs:string" minOccurs="0"/>
+					<xs:element name="CPUSpeed" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="CPUType" type="xs:string" minOccurs="0"/>
+					<xs:element name="Creator" minOccurs="0" maxOccurs="unbounded">
+						<xs:complexType>
+							<xs:simpleContent>
+								<xs:extension base="xs:string">
+									<xs:attribute name="Role" type="xs:string" use="required"/>
+								</xs:extension>
+							</xs:simpleContent>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Cuisine" type="xs:string" minOccurs="0"/>
+					<xs:element name="DelayBetweenShots" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="Department" type="xs:string" minOccurs="0"/>
+					<xs:element name="DeweyDecimalNumber" type="xs:string" minOccurs="0"/>
+					<xs:element name="DialColor" type="xs:string" minOccurs="0"/>
+					<xs:element name="DialWindowMaterialType" type="xs:string" minOccurs="0"/>
+					<xs:element name="DigitalZoom" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="Director" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="DisplaySize" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="DVDLayers" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="DVDRWDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="DVDSides" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="EAN" type="xs:string" minOccurs="0"/>
+					<xs:element name="ESRBAgeRating" type="xs:string" minOccurs="0"/>
+					<xs:element name="ExternalDisplaySupportDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="FabricType" type="xs:string" minOccurs="0"/>
+					<xs:element name="FaxNumber" type="xs:string" minOccurs="0"/>
+					<xs:element name="Feature" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="FirstIssueLeadTime" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="FloppyDiskDriveDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="Format" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="GemType" type="xs:string" minOccurs="0"/>
+					<xs:element name="GraphicsCardInterface" type="xs:string" minOccurs="0"/>
+					<xs:element name="GraphicsDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="GraphicsMemorySize" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="HardDiskCount" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="HardDiskSize" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="HasAutoFocus" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="HasBurstMode" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="HasInCameraEditing" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="HasRedEyeReduction" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="HasSelfTimer" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="HasTripodMount" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="HasVideoOut" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="HasViewfinder" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="Height" type="tns:FloatWithUnits" minOccurs="0"/>
+					<xs:element name="HoursOfOperation" minOccurs="0">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Hours" maxOccurs="7">
+									<xs:complexType>
+										<xs:simpleContent>
+											<xs:extension base="xs:string">
+												<xs:attribute name="Day" type="xs:string" use="optional"/>
+											</xs:extension>
+										</xs:simpleContent>
+									</xs:complexType>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="IncludedSoftware" type="xs:string" minOccurs="0"/>
+					<xs:element name="IncludesMp3Player" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="Ingredients" type="xs:string" minOccurs="0"/>
+					<xs:element name="IsAutographed" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="ISBN" type="xs:string" minOccurs="0"/>
+					<xs:element name="IsFragile" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="IsLabCreated" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="IsMemorabilia" type="xs:boolean" minOccurs="0"/>
+					<xs:element name="ISOEquivalent" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="IssuesPerYear" type="xs:string" minOccurs="0"/>
+					<xs:element name="KeyboardDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="Label" type="xs:string" minOccurs="0"/>
+					<xs:element name="Language" type="xs:string" minOccurs="0"/>
+					<xs:element name="LegalDisclaimer" type="xs:string" minOccurs="0"/>
+					<xs:element name="Length" type="tns:FloatWithUnits" minOccurs="0"/>
+					<xs:element name="LineVoltage" type="xs:string" minOccurs="0"/>
+					<xs:element name="ListPrice" type="tns:Price" minOccurs="0"/>
+					<xs:element name="MacroFocusRange" type="xs:string" minOccurs="0"/>
+					<xs:element name="MagazineType" type="xs:string" minOccurs="0"/>
+					<xs:element name="Manufacturer" type="xs:string" minOccurs="0"/>
+					<xs:element name="ManufacturerLaborWarrantyDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="ManufacturerMaximumAge" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="ManufacturerMinimumAge" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="ManufacturerPartsWarrantyDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="MaterialType" type="xs:string" minOccurs="0"/>
+					<xs:element name="MaximumAperture" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="MaximumColorDepth" type="xs:string" minOccurs="0"/>
+					<xs:element name="MaximumFocalLength" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="MaximumHighResolutionImages" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="MaximumHorizontalResolution" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="MaximumLowResolutionImages" type="xs:string" minOccurs="0"/>
+					<xs:element name="MaximumResolution" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="MaximumShutterSpeed" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="MaximumVerticalResolution" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="MaximumWeightRecommendation" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="MemorySlotsAvailable" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="MetalStamp" type="xs:string" minOccurs="0"/>
+					<xs:element name="MetalType" type="xs:string" minOccurs="0"/>
+					<xs:element name="MiniMovieDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="MinimumFocalLength" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="MinimumShutterSpeed" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="Model" type="xs:string" minOccurs="0"/>
+					<xs:element name="ModemDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="MonitorSize" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="MonitorViewableDiagonalSize" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="MouseDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="NativeResolution" type="xs:string" minOccurs="0"/>
+					<xs:element name="Neighborhood" type="xs:string" minOccurs="0"/>
+					<xs:element name="NetworkInterfaceDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="NotebookDisplayTechnology" type="xs:string" minOccurs="0"/>
+					<xs:element name="NotebookPointingDeviceDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="NumberOfDiscs" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="NumberOfIssues" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="NumberOfItems" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="NumberOfPages" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="NumberOfPearls" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="NumberOfRapidFireShots" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="NumberOfStones" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="NumberOfTracks" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="OpticalZoom" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="PearlLustre" type="xs:string" minOccurs="0"/>
+					<xs:element name="PearlMinimumColor" type="xs:string" minOccurs="0"/>
+					<xs:element name="PearlShape" type="xs:string" minOccurs="0"/>
+					<xs:element name="PearlStringingMethod" type="xs:string" minOccurs="0"/>
+					<xs:element name="PearlSurfaceBlemishes" type="xs:string" minOccurs="0"/>
+					<xs:element name="PearlType" type="xs:string" minOccurs="0"/>
+					<xs:element name="PearlUniformity" type="xs:string" minOccurs="0"/>
+					<xs:element name="PhoneNumber" type="xs:string" minOccurs="0"/>
+					<xs:element name="PhotoFlashType" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="PictureFormat" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="Platform" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="PriceRating" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="ProcessorCount" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="ProductGroup" type="xs:string" minOccurs="0"/>
+					<xs:element name="PromotionalTag" type="xs:string" minOccurs="0"/>
+					<xs:element name="PublicationDate" type="xs:string" minOccurs="0"/>
+					<xs:element name="Publisher" type="xs:string" minOccurs="0"/>
+					<xs:element name="ReadingLevel" type="xs:string" minOccurs="0"/>
+					<xs:element name="RegionCode" type="xs:string" minOccurs="0"/>
+					<xs:element name="ReleaseDate" type="xs:string" minOccurs="0"/>
+					<xs:element name="RemovableMemory" type="xs:string" minOccurs="0"/>
+					<xs:element name="ResolutionModes" type="xs:string" minOccurs="0"/>
+					<xs:element name="RingSize" type="xs:string" minOccurs="0"/>
+					<xs:element name="RunningTime" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="SecondaryCacheSize" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="SettingType" type="xs:string" minOccurs="0"/>
+					<xs:element name="SizePerPearl" type="xs:string" minOccurs="0"/>
+					<xs:element name="Size" type="xs:string" minOccurs="0"/>
+					<xs:element name="SoundCardDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="SpeakerDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="SpecialFeatures" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="StoneClarity" type="xs:string" minOccurs="0"/>
+					<xs:element name="StoneColor" type="xs:string" minOccurs="0"/>
+					<xs:element name="StoneCut" type="xs:string" minOccurs="0"/>
+					<xs:element name="StoneShape" type="xs:string" minOccurs="0"/>
+					<xs:element name="StoneWeight" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="Studio" type="xs:string" minOccurs="0"/>
+					<xs:element name="SubscriptionLength" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="SupportedImageType" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+					<xs:element name="SystemBusSpeed" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="SystemMemorySizeMax" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="SystemMemorySize" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="SystemMemoryType" type="xs:string" minOccurs="0"/>
+					<xs:element name="TheatricalReleaseDate" type="xs:string" minOccurs="0"/>
+					<xs:element name="Title" type="xs:string" minOccurs="0"/>
+					<xs:element name="TotalDiamondWeight" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="TotalExternalBaysFree" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalFirewirePorts" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalGemWeight" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="TotalInternalBaysFree" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalMetalWeight" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="TotalNTSCPALPorts" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalParallelPorts" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalPCCardSlots" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalPCISlotsFree" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalSerialPorts" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalSVideoOutPorts" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalUSB2Ports" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalUSBPorts" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="TotalVGAOutPorts" type="xs:nonNegativeInteger" minOccurs="0"/>
+					<xs:element name="UPC" type="xs:string" minOccurs="0"/>
+					<xs:element name="VariationDenomination" type="xs:string" minOccurs="0"/>
+					<xs:element name="VariationDescription" type="xs:string" minOccurs="0"/>
+					<xs:element name="Warranty" type="xs:string" minOccurs="0"/>
+					<xs:element name="WatchMovementType" type="xs:string" minOccurs="0"/>
+					<xs:element name="WaterResistanceDepth" type="tns:NonNegativeIntegerWithUnits" minOccurs="0"/>
+					<xs:element name="Weight" type="tns:FloatWithUnits" minOccurs="0"/>
+					<xs:element name="Width" type="tns:FloatWithUnits" minOccurs="0"/>
+				</xs:sequence>
+			</xs:complexType>
+		</xs:element>
+		<xs:complexType name="NonNegativeIntegerWithUnits">
+			<xs:simpleContent>
+				<xs:extension base="xs:nonNegativeInteger">
+					<xs:attribute name="Units" type="xs:string" use="required"/>
+				</xs:extension>
+			</xs:simpleContent>
+		</xs:complexType>
+		<xs:complexType name="FloatWithUnits">
+			<xs:simpleContent>
+	    			<xs:extension base="xs:float">
+	      				<xs:attribute name="Units" type="xs:string" use="required"/>
+	    			</xs:extension>
+	  		</xs:simpleContent>
+		</xs:complexType>
+	</xs:schema>
+    </types>
+    <message name="HelpRequestMsg">
+	<part name="body" element="tns:Help"/>
+    </message>
+    <message name="HelpResponseMsg">
+	<part name="body" element="tns:HelpResponse"/>
+    </message>
+    <message name="ItemSearchRequestMsg">
+	<part name="body" element="tns:ItemSearch"/>
+    </message>
+    <message name="ItemSearchResponseMsg">
+	<part name="body" element="tns:ItemSearchResponse"/>
+    </message>
+    <message name="ItemLookupRequestMsg">
+	<part name="body" element="tns:ItemLookup"/>
+    </message>
+    <message name="ItemLookupResponseMsg">
+	<part name="body" element="tns:ItemLookupResponse"/>
+    </message>
+    <message name="BrowseNodeLookupRequestMsg">
+	<part name="body" element="tns:BrowseNodeLookup"/>
+    </message>
+    <message name="BrowseNodeLookupResponseMsg">
+	<part name="body" element="tns:BrowseNodeLookupResponse"/>
+    </message>
+    <message name="ListSearchRequestMsg">
+	<part name="body" element="tns:ListSearch"/>
+    </message>
+    <message name="ListSearchResponseMsg">
+	<part name="body" element="tns:ListSearchResponse"/>
+    </message>
+    <message name="ListLookupRequestMsg">
+	<part name="body" element="tns:ListLookup"/>
+    </message>
+    <message name="ListLookupResponseMsg">
+	<part name="body" element="tns:ListLookupResponse"/>
+    </message>
+    <message name="CustomerContentSearchRequestMsg">
+	<part name="body" element="tns:CustomerContentSearch"/>
+    </message>
+    <message name="CustomerContentSearchResponseMsg">
+	<part name="body" element="tns:CustomerContentSearchResponse"/>
+    </message>
+    <message name="CustomerContentLookupRequestMsg">
+	<part name="body" element="tns:CustomerContentLookup"/>
+    </message>
+    <message name="CustomerContentLookupResponseMsg">
+	<part name="body" element="tns:CustomerContentLookupResponse"/>
+    </message>
+    <message name="SimilarityLookupRequestMsg">
+	<part name="body" element="tns:SimilarityLookup"/>
+    </message>
+    <message name="SimilarityLookupResponseMsg">
+	<part name="body" element="tns:SimilarityLookupResponse"/>
+    </message>
+    <message name="SellerLookupRequestMsg">
+	<part name="body" element="tns:SellerLookup"/>
+    </message>
+    <message name="SellerLookupResponseMsg">
+	<part name="body" element="tns:SellerLookupResponse"/>
+    </message>
+    <message name="CartGetRequestMsg">
+	<part name="body" element="tns:CartGet"/>
+    </message>
+    <message name="CartGetResponseMsg">
+	<part name="body" element="tns:CartGetResponse"/>
+    </message>
+    <message name="CartAddRequestMsg">
+	<part name="body" element="tns:CartAdd"/>
+    </message>
+    <message name="CartAddResponseMsg">
+	<part name="body" element="tns:CartAddResponse"/>
+    </message>
+    <message name="CartCreateRequestMsg">
+	<part name="body" element="tns:CartCreate"/>
+    </message>
+    <message name="CartCreateResponseMsg">
+	<part name="body" element="tns:CartCreateResponse"/>
+    </message>
+    <message name="CartModifyRequestMsg">
+	<part name="body" element="tns:CartModify"/>
+    </message>
+    <message name="CartModifyResponseMsg">
+	<part name="body" element="tns:CartModifyResponse"/>
+    </message>
+    <message name="CartClearRequestMsg">
+	<part name="body" element="tns:CartClear"/>
+    </message>
+    <message name="CartClearResponseMsg">
+	<part name="body" element="tns:CartClearResponse"/>
+    </message>
+    <message name="TransactionLookupRequestMsg">
+	<part name="body" element="tns:TransactionLookup"/>
+    </message>
+    <message name="TransactionLookupResponseMsg">
+	<part name="body" element="tns:TransactionLookupResponse"/>
+    </message>
+    <message name="SellerListingSearchRequestMsg">
+	<part name="body" element="tns:SellerListingSearch"/>
+    </message>
+    <message name="SellerListingSearchResponseMsg">
+	<part name="body" element="tns:SellerListingSearchResponse"/>
+    </message>
+    <message name="SellerListingLookupRequestMsg">
+	<part name="body" element="tns:SellerListingLookup"/>
+    </message>
+    <message name="SellerListingLookupResponseMsg">
+	<part name="body" element="tns:SellerListingLookupResponse"/>
+    </message>
+    <message name="MultiOperationRequestMsg">
+	<part name="body" element="tns:MultiOperation"/>
+    </message>
+    <message name="MultiOperationResponseMsg">
+	<part name="body" element="tns:MultiOperationResponse"/>
+    </message>
+    <portType name="AWSECommerceServicePortType">
+	<operation name="Help">
+	    <input message="tns:HelpRequestMsg"/>
+	    <output message="tns:HelpResponseMsg"/>
+	</operation>
+	<operation name="ItemSearch">
+	    <input message="tns:ItemSearchRequestMsg"/>
+	    <output message="tns:ItemSearchResponseMsg"/>
+	</operation>
+	<operation name="ItemLookup">
+	    <input message="tns:ItemLookupRequestMsg"/>
+	    <output message="tns:ItemLookupResponseMsg"/>
+	</operation>
+	<operation name="BrowseNodeLookup">
+	    <input message="tns:BrowseNodeLookupRequestMsg"/>
+	    <output message="tns:BrowseNodeLookupResponseMsg"/>
+	</operation>
+	<operation name="ListSearch">
+	    <input message="tns:ListSearchRequestMsg"/>
+	    <output message="tns:ListSearchResponseMsg"/>
+	</operation>
+	<operation name="ListLookup">
+	    <input message="tns:ListLookupRequestMsg"/>
+	    <output message="tns:ListLookupResponseMsg"/>
+	</operation>
+	<operation name="CustomerContentSearch">
+	    <input message="tns:CustomerContentSearchRequestMsg"/>
+	    <output message="tns:CustomerContentSearchResponseMsg"/>
+	</operation>
+	<operation name="CustomerContentLookup">
+	    <input message="tns:CustomerContentLookupRequestMsg"/>
+	    <output message="tns:CustomerContentLookupResponseMsg"/>
+	</operation>
+	<operation name="SimilarityLookup">
+	    <input message="tns:SimilarityLookupRequestMsg"/>
+	    <output message="tns:SimilarityLookupResponseMsg"/>
+	</operation>
+	<operation name="SellerLookup">
+	    <input message="tns:SellerLookupRequestMsg"/>
+	    <output message="tns:SellerLookupResponseMsg"/>
+	</operation>
+	<operation name="CartGet">
+	    <input message="tns:CartGetRequestMsg"/>
+	    <output message="tns:CartGetResponseMsg"/>
+	</operation>
+	<operation name="CartAdd">
+	    <input message="tns:CartAddRequestMsg"/>
+	    <output message="tns:CartAddResponseMsg"/>
+	</operation>
+	<operation name="CartCreate">
+	    <input message="tns:CartCreateRequestMsg"/>
+	    <output message="tns:CartCreateResponseMsg"/>
+	</operation>
+	<operation name="CartModify">
+	    <input message="tns:CartModifyRequestMsg"/>
+	    <output message="tns:CartModifyResponseMsg"/>
+	</operation>
+	<operation name="CartClear">
+	    <input message="tns:CartClearRequestMsg"/>
+	    <output message="tns:CartClearResponseMsg"/>
+	</operation>
+	<operation name="TransactionLookup">
+	    <input message="tns:TransactionLookupRequestMsg"/>
+	    <output message="tns:TransactionLookupResponseMsg"/>
+	</operation>
+	<operation name="SellerListingSearch">
+	    <input message="tns:SellerListingSearchRequestMsg"/>
+	    <output message="tns:SellerListingSearchResponseMsg"/>
+	</operation>
+	<operation name="SellerListingLookup">
+	    <input message="tns:SellerListingLookupRequestMsg"/>
+	    <output message="tns:SellerListingLookupResponseMsg"/>
+	</operation>
+	<operation name="MultiOperation">
+	    <input message="tns:MultiOperationRequestMsg"/>
+	    <output message="tns:MultiOperationResponseMsg"/>
+	</operation>
+    </portType>
+    <binding name="AWSECommerceServiceBinding" type="tns:AWSECommerceServicePortType">
+	<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+	<operation name="Help">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="ItemSearch">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="ItemLookup">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="BrowseNodeLookup">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="ListSearch">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="ListLookup">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="CustomerContentSearch">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="CustomerContentLookup">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="SimilarityLookup">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="SellerLookup">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="CartGet">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="CartCreate">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="CartAdd">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="CartModify">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="CartClear">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="TransactionLookup">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="SellerListingSearch">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="SellerListingLookup">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+	<operation name="MultiOperation">
+	    <soap:operation soapAction="http://soap.amazon.com"/>
+	    <input>
+		<soap:body use="literal"/>
+	    </input>
+	    <output>
+		<soap:body use="literal"/>
+	    </output>
+	</operation>
+    </binding>
+    <service name="AWSECommerceService">
+	<port name="AWSECommerceServicePort" binding="tns:AWSECommerceServiceBinding">
+	    <soap:address location="http://soap.amazon.com/onca/soap?Service=AWSECommerceService"/>
+	</port>
+    </service>
+</definitions>
diff -urN beagle/Util/Makefile.am beagle-amazon/Util/Makefile.am
--- beagle/Util/Makefile.am	2004-10-28 16:26:56 -0700
+++ beagle-amazon/Util/Makefile.am	2004-10-31 13:59:15 -0800
@@ -8,10 +8,17 @@
 GOOGLE_WSDL = $(srcdir)/GoogleSearch.wsdl
 GOOGLE_CS   = GoogleSearch.cs
 
+AMAZON_WSDL = $(srcdir)/AWSECommerceService.wsdl
+AMAZON_CS   = AmazonSearch.cs
+
 $(GOOGLE_CS): $(GOOGLE_WSDL)
 	wsdl -namespace:Beagle.Util -out:$@ $^
 
+$(AMAZON_CS): $(AMAZON_WSDL)
+	wsdl -namespace:Beagle.Util -out:$@ $^
+
 CSFILES = 			        	\
+	$(srcdir)/AmazonSearch.cs              	\
 	$(srcdir)/camel.cs              	\
 	$(srcdir)/FileAdvise.cs			\
 	$(srcdir)/ExifData.cs			\
@@ -47,7 +54,7 @@
 	-r:Mono.Posix
 
 
-$(TARGET): $(CSFILES) $(GOOGLE_CS)
+$(TARGET): $(CSFILES) $(GOOGLE_CS) $(AMAZON_CS)
 	$(CSC) --unsafe -o $@ $(CSFLAGS) $^ $(ASSEMBLIES)
 
 all: $(TARGET)
@@ -61,8 +68,10 @@
 
 EXTRA_DIST =		\
 	$(GOOGLE_WSDL)	\
+	$(AMAZON_WSDL)	\
 	$(CSFILES)
 
 CLEANFILES =		\
 	$(GOOGLE_CS)	\
+	$(AMAZON_CS)	\
 	$(TARGET)
diff -urN beagle/beagled/AmazonDriver.cs beagle-amazon/beagled/AmazonDriver.cs
--- beagle/beagled/AmazonDriver.cs	1969-12-31 16:00:00 -0800
+++ beagle-amazon/beagled/AmazonDriver.cs	2004-10-31 18:44:35 -0800
@@ -0,0 +1,189 @@
+//
+// AmazonDriver.cs
+//
+// Copyright (C) 2004 Novell, Inc.
+//
+// Amazon is a trademark of Amazon.  But you already knew that.
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+//
+
+
+using System;
+using System.Collections;
+using Beagle.Util;
+
+namespace Beagle.Daemon {
+
+	[QueryableFlavor (Name="Amazon", Domain=QueryDomain.Global)]
+	public class AmazonDriver : IQueryable {
+
+		// This event is never fired, but needs to be here for us
+		// to fully implement the IQueryable interface.
+		public event IQueryableChangedHandler ChangedEvent;
+
+
+		int maxResults = 5;
+
+		string[] Categories = {
+			"Books",
+			"Music",
+			"DVD"
+		};
+
+		AWSECommerceService ass = new AWSECommerceService ();
+		string SubscriptionId;
+
+		public AmazonDriver ()
+		{
+			SubscriptionId = Environment.GetEnvironmentVariable ("AMAZON_SUBSCRIPTION_ID");
+		}
+
+		public string Name {
+			get { return "Amazon"; }
+		}
+
+		public void Start () 
+		{
+		}
+
+		public static String Replace(String strText,String strFind,String
+				strReplace)
+		{
+			int iPos=strText.IndexOf(strFind);
+			String strReturn="";
+			while(iPos!=-1)
+			{
+				strReturn+=strText.Substring(0,iPos) + strReplace;
+				strText=strText.Substring(iPos+strFind.Length);
+				iPos=strText.IndexOf(strFind);
+			}
+			if(strText.Length>0)
+				strReturn+=strText;
+			return strReturn;
+		}
+
+		Hit FromAmazonItem (Item res, int rank)
+		{
+			Hit hit = new Hit ();
+
+			Logger.Log.Info("Amazon found item {0}",res.ASIN);
+
+			hit.Uri      = new Uri (res.DetailPageURL, true);
+			hit.Type     = "Google";
+			hit.MimeType = "text/html"; // FIXME
+			hit.Source   = "Amazon";
+
+			hit.ScoreRaw    = 0.2f / (1 + rank);
+			// FIXME: hit.ScoreRaw = int.Parse(Replace(res.SalesRank,",",""));
+			hit ["Title"]            = res.ItemAttributes.Title;
+			// FIXME:	hit ["Snippet"] = res.EditorialReviews[0];
+			if ( res.SmallImage != null ) {
+				hit ["Icon"] = res.SmallImage.URL;
+			} else if ( res.MediumImage != null ) {
+				hit ["Icon"] = res.MediumImage.URL;
+			} else if ( res.LargeImage != null ) {
+				hit ["Icon"] = res.LargeImage.URL;
+			}
+			return hit;
+		}
+
+		static bool showNoKeyMessage = true;
+
+		public bool AcceptQuery (QueryBody body)
+		{
+			if (! body.HasText)
+				return false;
+
+			if (! body.AllowsDomain (QueryDomain.Global))
+				return false;
+
+			// FIXME: This is a meta-FIXME, since this is a bad assumption
+			// because the mime-type setting FIXME above.
+			if (! body.AllowsMimeType ("text/html"))
+				return false;
+
+			// Reject queries if the key isn't set.
+			if (SubscriptionId == null || SubscriptionId == "") {
+				if (showNoKeyMessage) {
+					Logger.Log.Warn ("To query Amazon, put your Amazon key into the AMAZON_SUBSCRIPTION_ID environment variable.");
+					Logger.Log.Warn ("To get a Amazon key, go to http://webservices.amazon.com/";);
+					showNoKeyMessage = false;
+				}
+				return false;
+			}
+
+			return true;
+		}
+
+
+		public void DoQuery (QueryBody body,
+				IQueryResult result,
+				IQueryableChangeData changeData)
+		{
+			MessageItemSearch msg = new MessageItemSearch();
+			msg.SubscriptionId = SubscriptionId;
+			msg.AssociateTag   = "webservices-20";
+
+			int count = 0;
+
+			msg.Request = new ItemSearchRequest[Categories.Length];
+
+			foreach( string cat in Categories ) {
+				ItemSearchRequest req = new ItemSearchRequest();
+				req.Keywords          = body.QuotedText;
+				req.ResponseGroup     = new string[4];
+				req.ResponseGroup[0]  = "Small";
+				req.ResponseGroup[1]  = "Images";
+				req.ResponseGroup[2]  = "SalesRank";
+				req.ResponseGroup[3]  = "EditorialReview";
+				req.SearchIndex       = cat;
+				req.Count             = Convert.ToString(maxResults);
+				msg.Request[count++]  = req;
+			}
+
+			MessageItemSearchResponse asr = ass.ItemSearch(msg);
+
+			Logger.Log.Info("Amazon search done");
+
+			ArrayList hits = new ArrayList ();
+			int rank = 0;
+			foreach (Items elt in asr.Items) {
+				Logger.Log.Info("Amazon Total Results: {0}",elt.TotalResults);
+				foreach(Item itm in elt.Item) {
+					if(itm.ItemAttributes!=null && itm.ItemAttributes.Title!=null) {
+						Hit hit = FromAmazonItem (itm, ++rank);
+						hits.Add (hit);
+					}
+				}
+			}
+
+			result.Add (hits);
+		}
+
+		public string GetHumanReadableStatus ()
+		{
+			return "FIXME: Needs Status";
+		}
+
+	}
+
+}
diff -urN beagle/beagled/Makefile.am beagle-amazon/beagled/Makefile.am
--- beagle/beagled/Makefile.am	2004-10-13 13:55:14 -0700
+++ beagle-amazon/beagled/Makefile.am	2004-10-31 13:53:02 -0800
@@ -228,6 +228,7 @@
 	$(srcdir)/QueryDriver.cs		\
 	$(srcdir)/QueryImpl.cs			\
 	$(srcdir)/GoogleDriver.cs		\
+	$(srcdir)/AmazonDriver.cs		\
 	$(srcdir)/BugzillaDriver.cs 		\
 	$(srcdir)/LuceneDriver.cs		\
 	$(srcdir)/LuceneQueryable.cs		\


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]